Bytebeat - это стиль музыки, который можно сочинить, написав простую программу на C, в которую выводится aplay
или /dev/dsp
.
main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);}
На сайте bytebeat имеется много информации , реализация javascript , а также множество демонстраций и примеров композиций в этой теме .
Очень простые правила: попробуйте написать довольно звучащую композицию. Большинство голосов «за» побеждает, поскольку это, очевидно, субъективно, хотя и не так субъективно, учитывая обычные результаты.
popularity-contest
c
music
Джефф Берджес
источник
источник
rand()
нестандартная.Ответы:
(Подписано 16-разрядным прямым порядком байтов, моно 8000 Гц (
--format=S16_LE
))Музыка
Гораздо лучше, чем раньше! (хотя это довольно долго)
main(t){for(;;t++)putchar(((7&(((t>>17)+1)>>2)+((t>>10)&1+2*(t>>18&1))*(("23468643"[7&t>>12]-48)+(3&t>>11))+((3&t>>17)>0)*(3&t>>9)*!(1&t>>10)*(((2+t>>10&3)^(2+t>>11&3))))*t*"@06+"[3&t>>15]/32));}
(Вы можете послушать это здесь )
Я написал это, но даже я не знаю, как работает какая-то часть, как
>0
и (особенно) первая7&
.Измените цикл на
for(;!(t>>22);t++)
... чтобы прослушать его «один раз». Однако я не знаю, точно ли он «зацикливается».Мелодия (база вышеупомянутой музыки)
Мне нравится эта мелодия, которую я сделал (CGAF ftw), но она слишком "простая" ...
main(t){for(;;t++)putchar(((t>>10)&1)*(t*("23468643"[7&t>>12]-48)+t*(3&t>>11))*"@06+"[3&t>>15]/32);}
Простая музыка (которую я сделал раньше)
main(t){for(;;t++)putchar(t*(3&t>>11)+(t&t>>11)*4*!((t>>11)%3));}
источник
Функция линейки до минор:
источник
источник
Подчеркивая "бить" над "байтом":
Для использования при 8 кГц, uint8 моно. Звучит лучше, чем приличные динамики с басами.
источник
Звучит как океан ;-)
источник
$ cat /dev/urandom | aplay
aplay /dev/urandom
Сочетание мелодии и гармонии:
источник