Bytebeat es un estilo de música que se puede componer escribiendo un simple programa en C cuya salida se canaliza hacia aplay
o /dev/dsp
.
main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);}
Hay una buena cantidad de información en el sitio bytebeat , una implementación de JavaScript y más demostraciones y composiciones de ejemplo en este hilo .
Reglas muy simples: Intenta escribir una composición que suene bonita. La mayoría de los votos aumentan ya que eso es obviamente subjetivo, aunque no tan subjetivo teniendo en cuenta los resultados habituales.
popularity-contest
c
music
Jeff Burdges
fuente
fuente
rand()
no sea estándar.Respuestas:
(Firmado little endian de 16 bits, 8000Hz mono (
--format=S16_LE
))Música
Mucho mejor que antes! (aunque es bastante largo)
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));}
(Puedes escuchar esto aquí )
Escribí esto, pero ni siquiera sé cómo funciona una parte, como
>0
y (especialmente) la primera7&
.Cambiar por bucle a
for(;!(t>>22);t++)
... para escucharlo 'una vez'. Sin embargo, no sé si se "repite" exactamente de la misma manera.Melodía (base de la música anterior)
Me encanta esta melodía que hice (CGAF ftw), pero es demasiado 'simple' ...
main(t){for(;;t++)putchar(((t>>10)&1)*(t*("23468643"[7&t>>12]-48)+t*(3&t>>11))*"@06+"[3&t>>15]/32);}
Música simple (que hice antes)
main(t){for(;;t++)putchar(t*(3&t>>11)+(t&t>>11)*4*!((t>>11)%3));}
fuente
La función de regla en do menor:
fuente
fuente
Enfatizando "beat" sobre "byte":
Para ser utilizado a 8 kHz, uint8 mono. Suena mejor con altavoces decentemente aptos para bajos.
fuente
Suena como el océano ;-)
fuente
$ cat /dev/urandom | aplay
aplay /dev/urandom
Melodía y armonía combinadas:
fuente