WebSound.ru Home
    Главная | Комментарии | Архив выпусков | Форум и чат | AudioTag.info | Музоблог | reTracked | Авторский блог  



  Поиск:

Поиск по WebSound.Ru:
Поиск в Интернете:
Powered by




  Партнеры, реклама:




Audio watermarking
TrustedAudio.com



 

Алгоритмическая музыка

Очень, ну просто очень интересную работу (а, теперь, и целое течение) я недано для себя обнаружил. Редко когда встретишь нечто столь же занимательное и совершенно неожиданное. Я не сомневаюсь, что об этом написали уже на многих сайтах, но я перескажу своими словами для тех, кто пока это не встретил.

Итак, как известно, музыку можно записать в виде партитуры и исполнить. Партитура может быть записана в виде файла, например, MIDI или трекерного модуля. Для исполнения, однако требуются и звуки инструментов, которые обычно заготавливают отдельно. В демосцене, где критичны размеры, всё стараются делать компактно. Для этого партитуру пишут в виде кода, а звуки не заготавливают отдельно, а генерируют на ходу с помощью тоже программного синтеза. Это получается компактно, потому что никакие "сырые" аудиоданные в этом случае носить не нужно. Всё "хранится" в виде программы, которая сама на ходу всё генерирует по заранее заложенной партитуре. Написать, однако, "хороший" синтезатор (с хорошими звуками) и при этом остаться в компактных размерах небольшой программы - это целое искусство. Об этом, впрочем, мы уже много раз упоминали, поищите в архиве по "exe-музыка".

Однако, оказывается, можно пойти ещё дальше! Дядечка под псевдонимом countercomplex обнаружил совершенно потрясающую вещь: он умудрился заметить, что вывод простейшего кода на С в одну строчку можно перенаправить в файл, после чего проиграть полученное аудио как "сырые" PCM-данные, и получится вполне гармоничная музыка!

Вот пример на C:

main(t) {
    for (t=0;;t++) putchar((t*(t>>8+t>>9)*100)+sin(t));
}

Для тех, кто не в курсе, расшифровываю: программа в бесконечном цикле генерирует символ за символом по формуле: (t*(t>>8+t>>9)*100)+sin(t), где t при каждой итерации (каждом новом символе) увеличивается на 1. Набор полученных символов можно перенаправлять прямо в буфер аудио карты как PCM-данные. И... получается музыка!

Вот наглядное видео, с этого всё начиналось:

А это уже продолжение:

Ну и вот уж совсем продвинутые варианты, местами на 44 КГц:

Фурор просто!
Публика подхватила эту потрясающую идею и был даже сделан онлайн-генератор музыки по заданной формуле.
Он располагается тут: http://wurstcaptures.untergrund.net/music/
Тут можно задать любую запись с логическими и арифметическими операциями и тут же проверить как она звучит!

Вот, например, очень сложный пример и вполне осмысленная музыка:

w=t>>9, k=32, m=2048, a=1-t/m%1, d=(14*t*t^t)%m*a, y=[3,3,4.75,2,2][p=w/k&3]*t/4, h="IQNNNN!!]]!Q!IW]WQNN??!!W]WQNNN?".charCodeAt(w/2&15|p/3<<4)/33*t-t, s=y*.98%80+y%80+(w>>7&&a*((5*t%m*a&128)*(0x53232323>>w/4&1)+(d&127)*(0xa444c444>>w/4&1)*1.5+(d*w&1)+(h%k+h*1.99%k+h*.49%k+h*.97%k-64)*(4-a-a))), s*s>>14?127:s

линк.

Интересно также и то, что таким же макаром можно генерировать не только аудио данные, но и визуальные (картинки). Стоит только тот же самый вывод программы интерпретировать, например, как яркость пикселей.

Открытым лишь остаётся один довольно серьёзный вопрос: существует ли хоть какая-то научная база, которая помогла бы заранее находить и понимать взаимосвязь составляющих формул и результат их звучания? Эксперименты показывают, что с помощью логических операций в одной и той же формуле можно умудриться задавать как макро- так и микро-детали звучания. Но пока что результат звучания написанной формулы нельзя почти никак предсказать, а можно лишь только проверить. Так вот, интересно, есть ли за этим хоть какая-то наука?..

Вашими мыслями вы можете делиться в комментариях к заметке.



 

Читать весь 207-й номер 
Перейти в архив выпусков WebSound.Ru 



Ниже располагаются комментарии к этой заметке

Пожалуйста, обратите внимание! Если вы хотите что-то сообщить автору WebSound.Ru, лучше сделать это не здесь, а направить ваше сообщение по e-mail. Пожалуйста, составляйте свои комментарии в вежливой форме. Не засоряйте сайт бессодержательными и невежливыми сообщениями.


comments powered by Disqus