Na blogu countercomplex znalazłem ciekawy artykuł jak generować 8-bitowe oldskulowe (podobne do tych z gier z lat 80-tych) melodie za pomocą jednej linijki kodu w języku C. Poniżej dwa przykładowe programy:
main(t){for(t=0;;t++)putchar((t*5&t>>7)|(t*3&t>>10));}
main(t){for(t=0;;t++)putchar((t>>6|t|t>>(t>>16))*10+((t>>11)&7));}
Powyższe programy kompilujemy następująco:
gcc sound.c -o sound
Aby odtworzyć dźwięk z naszego generatora o nazwie sound, należy przekierować jego standardowe wyjście na standardowe wejście odtwarzacza audio np. aplay (Linux) za pomocą potoku |:
./sound | aplay
W komentarzach do artykułu na blogu countercomplex jest dużo innych przykładów - można poeksperymentować modyfikując funkcję putchar().
Źródła
http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html
http://countercomplex.blogspot.com/2011/10/some-deep-analysis-of-one-line-music.html
Brak komentarzy:
Prześlij komentarz