G.A.S.S. (Graphical Algorithmic Sound Simulator) е поредното ми творение. Този път се заиграх с една популярна напоследък вариация на така наречените chiptunes.
При нея, с използването на 1-2 реда код, съдържаш определена формула, се генерират сложни, подобни на „музика“ звуци (напомнящи доста на музиката от 8-битовите ретро игри).
Примери: chiptune1 chiptune2 chiptune3 (не забравяйте да си понамалите звука ;))
Тези звуци се получават като вземем изхода от проста програма написана на C, и го подадем на звуковата карта като суров PCM поток. Ето как изглежда кода на chiptune1:

main(t){for(t=0;;++t)putchar(
    t*5&(t>>7)|t*3&(t*4>>10)
);}

Както може би сами виждате (или по-скоро чувате), една съвсем проста на вид формула, може да генерира учудващо сложни и мелодични звуци.
Формулата по същество представлява функция на променливата t, а t е „времето“ – при всеки цикъл се увеличава с 1. Другото са алгебрични функции и побитови операции – и, или, не, отместване и т.н. (може да се използват дори sin(), cos() и т.н.).
Едно лобопитно (поне за мен) нещо в тези формули е че използването на прости числа (2, 3, 5, 7, 11, 13…) обикновено води до генерирането на по-хармонични и разнообразни звуци.
Тъй всичко това ми се стори много любопитно, за да улесня процеса на създаване на тези „мелодии“ направих една програма, която ви позволява да създавате свои формули и дори да ги записвате като wav файл.
Ето как изглежда:

Програмата е предназначена за GNU/Linux, и се разпространява като .deb пакет. Ако ползвате УСУ, може да я инсталирате директно от мениджъра на пакети, казва се gass.
Ако ползвате Ubuntu или Debian, може ръчно да изтеглите пакета gass-0.1-all.deb [16KB] и да го инсталирате, или (по-добрият вариант) – да си добавите хранилището на СКСС. Това става най-бързо като изпълните следните команди в терминал:

echo "deb http://download.learnfree.eu/repository/skss / #SKSS" | sudo tee -a /etc/apt/sources.list
wget http://download.learnfree.eu/repository/skss/repo.pub.asc -q -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install gass

След инсталацията, програмата се появява в менюто Програми -> Звук и Видео -> G.A.S.S. – Графичен Симулатор на Алгоритмични Звуци.
Приготвил съм и двадесетина примерни формули, намиращи се в /usr/share/gass/samples, които можете да зареждате директно в програмата от съответния бутон горе вдясно на прозореца.
В Интернет може да откриете още много готови формули и дори други подобни програми (някои формули най-вероятно ще се нуждаят от малки корекции за да работят в G.A.S.S.)

Сорс-кодът все още не е качен никъде, но в следващите дни ще направя страница в launchpad.net, където ще го кача (в случай че някой се интересува).
G.A.S.S. е още едно доказателство че наука и изкуство могат да вървят ръка за ръка 🙂

ЗАБЕЛЕЖКА: не поемам отговорност ако си причините мозъчно увреждане от слушането на един и същи звук в продължение на 12 часа 😀