Bytebeat est un style de musique que l'on peut composer en écrivant un simple programme C dont la sortie est canalisée vers aplay
ou /dev/dsp
.
main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);}
Il y a beaucoup d'informations sur le site bytebeat , une implémentation javascript et plus de démos et d'exemples de compositions dans ce fil .
Règles très simples: essayez d'écrire une jolie composition sonore. La plupart des votes positifs l'emportent car c'est évidemment subjectif, bien que pas subjectif compte tenu des résultats habituels.
popularity-contest
c
music
Jeff Burdges
la source
la source
rand()
pas standard.Réponses:
(Petit endian 16 bits signé, 8000 Hz mono (
--format=S16_LE
))La musique
Beaucoup mieux qu'avant! (même si c'est assez long)
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));}
(Vous pouvez écouter ceci ici )
J'ai écrit cela, mais même je ne sais pas comment certaines parties fonctionnent, comme
>0
et (surtout) la première7&
.Changez pour la boucle en
for(;!(t>>22);t++)
... pour l'écouter 'une fois'. Cependant, je ne sais pas s'il "boucle" exactement de la même manière.Mélodie (base de la musique ci-dessus)
J'adore cette mélodie que j'ai faite (CGAF ftw), mais elle est trop 'simple' ...
main(t){for(;;t++)putchar(((t>>10)&1)*(t*("23468643"[7&t>>12]-48)+t*(3&t>>11))*"@06+"[3&t>>15]/32);}
Musique simple (que j'ai faite auparavant)
main(t){for(;;t++)putchar(t*(3&t>>11)+(t&t>>11)*4*!((t>>11)%3));}
la source
La fonction règle en ut mineur:
la source
la source
Mettre l'accent sur "battre" sur "octet":
À utiliser à 8 kHz, uint8 mono. Sonne mieux que des haut-parleurs décemment capables de basses.
la source
Sonne comme l'océan ;-)
la source
$ cat /dev/urandom | aplay
aplay /dev/urandom
Mélodie et harmonie combinées:
la source