В результате получается значение, которое бегает от нуля до 99 по кругу. Во первых, все участники конкурса воспринимают эту задачу ровно Size-coding, то есть, хотят сделать исходный код ровно можно меньше. Чтобы понять, чисто устроена программа, приходится здорово долго входить. Как вы догадались, глядя на заглавную картинку, сейчас будет нечто, ужасно похожее на слог программирования Lisp. Все примеры рабочие, их можно запустить прямиком в браузере. Язык программирования для генеративной музыки ByteBeat — это чисто один то, что я ищу. Bytebeat Ultra Editor — это веб-редактор чиптюн-музыки на JavaScript. Позволяет писать, слушать, предавать и удерживать bytebeat-треки прямиком в браузере. Включает функции шифрования, загрузки проектов и скачивания WAV-файлов.
Теперь наша функция выдает несколько семплов со значением 100, за которым следует несколько семплов со значением 0. Побитовые операторы AND, OR, XOR и побитовые сдвиги работают также, будто и в других языках программирования, они взяты напрямую из языка ассемблер. Если хотите послушать, трансмейлский минет откройте предыдущий образец и скопируйте новый код туда вручную. Разумеется, вы можете менять цифры и сразу же следить изменения в звуке. Код, какой вы набрали, сохраняется в URL страницы, вы можете им делиться с друзьями. Потом оператор сравнения сравнивает полученное смысл с цифрой 50 и выдает на выход либо 1 либо 0 в зависимости от результата сравнения. Попробую перевести его на человечий язык. Берем переменную t, вычисляем смысл по модулю 100 (или берем остаток от деления на число 100, то же самое).
Тот кус кода, с которым вы имеете дело, будет миновать одинёшенек раз всякий аудиофрейм (то есть, если частота дискретизации 8 килогерц, то код исполнится 8 тысяч раз). Результатом выполнения кода служит один семпл со значением от 0 до 255 (то есть, на выходе у нас восьмибитный звук). Если на выходе значение превышает 255, то происходит wraparound целочисленного значения (лишние биты отбрасываются). Если вы программировали на ассемблере, вам это подобает быть знакомо. Все внутренние вычисления проходят в привычном 32-х битном формате. Умножение на 100 нужно для того, чтобы соорудить сигнал чуть громче.
