Bytebeat to styl muzyczny, który można komponować, pisząc prosty program w języku C, którego dane wyjściowe są przesyłane strumieniowo do aplay
lub /dev/dsp
.
main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);}
Na stronie bytebeat znajduje się sporo informacji , implementacja javascript oraz więcej demonstracji i przykładowych kompozycji w tym wątku .
Bardzo proste zasady: spróbuj napisać ładnie brzmiącą kompozycję. Większość głosów wygrywa, ponieważ jest to oczywiście subiektywne, choć nie tak subiektywne, biorąc pod uwagę zwykłe wyniki.
popularity-contest
c
music
Jeff Burdges
źródło
źródło
rand()
jest niestandardowa.Odpowiedzi:
(Podpisano 16-bitowy mały endian, 8000 Hz mono (
--format=S16_LE
))Muzyka
Znacznie lepiej niż wcześniej! (chociaż jest dość długi)
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));}
(Możesz posłuchać tutaj )
Napisałem to, ale nawet nie wiem, jak działa jakaś część, jak
>0
i (szczególnie) pierwsza7&
.Zmień na loop, aby
for(;!(t>>22);t++)
... słuchać go „raz”. Nie wiem jednak, czy „zapętla się” dokładnie w ten sam sposób.Melodia (baza powyższej muzyki)
Uwielbiam tę melodię, którą stworzyłem (CGAF ftw), ale jest ona zbyt „prosta” ...
main(t){for(;;t++)putchar(((t>>10)&1)*(t*("23468643"[7&t>>12]-48)+t*(3&t>>11))*"@06+"[3&t>>15]/32);}
Prosta muzyka (którą wcześniej stworzyłem)
main(t){for(;;t++)putchar(t*(3&t>>11)+(t&t>>11)*4*!((t>>11)%3));}
źródło
Funkcja linijki c-moll:
źródło
źródło
Podkreślając „bicie” nad „bajtem”:
Do użytku przy częstotliwości 8 kHz, mono uint8. Najlepiej brzmi w porównaniu z głośnikami o niskich basach.
źródło
Brzmi jak ocean ;-)
źródło
$ cat /dev/urandom | aplay
aplay /dev/urandom
Połączona melodia i harmonia:
źródło