term-rewriting noise |
[Apr. 6th, 2009|03:10 pm] |
Если интересно, вот вариант концепции, которая максимально обобщает, как мне кажется, информационный подход к синтезу звука*.
Делим слышимый частотный диапазон на некоторое (достаточно большое) количество равных фиксированных диапазонов и для каждого диапазона заводим тонгенератор. В исходном состоянии генерируемый ими сигнал приближается к белому шуму (все частоты представлены с одинаковой средней амплитудой). С другой стороны, сопоставляем частотному диапазону некоторый символьный вектор. Алфавит этих этого вектора (таблица побитовой кодировки) представляет цифровые уровни амплитуды (соответственно, 8битная амплитуда - 256 символов; 16 битная - 65535 символов итд). Количество символов представляет число переменных диапазонов, на которые мы делим частотный спектр. Переменный диапазон может включать один или несколько фиксированных; таким образом, одному символу в строке может соответствовать один или несколько тонгенераторов. Строка символов изменяется в соответствии с некоторым алгоритмом. Обобщим этот алгоритм в виде недетерминированного term-rewriting**. Исходному состоянию данных всегда сопоставляется белый шум, который и является исходной точкой любой композиции.*** На каждом шаге алгоритма мы высчитываем разницу между предыдущим и текущим состоянием данных (получаем ряд чисел со знаком, например, + - 127 для 8битной амплитуды). Этот ряд разниц задает изменения амплитуды каждого переменного частотного диапазона. В результате алгоритма может изменяться и число элементов вектора (соответственно, изменяется число переменных диапазонов и число тонгенераторов, соответствующих каждому переменному диапазону). Верхний предел числа элементов задается физическим количеством тонгенераторов (если у нас физический синтезатор) или частотным разрешением файла (если мы работаем прямо с файлом). Для файла частотой 44.1 кгц в векторе может быть не более 22050 символов, при этом, естественно, будут ограничены и возможности работы с амплитудой). В результате всего этого, динамика шумовой композиции является отражением процесса выполнения алгоритма.
Полученный файл будет состоять из некоторого количества "кадров"-шагов алгоритма. Переход между кадрами можно осуществлять одномоментно ("щелчками") или морфингом ("плавно). Если переход будет делаться морфингом, нужно будет решить еще вопрос о длине периода морфинга и его соотношения с длиной кадра. Эти факторы будут влиять на восприятие музыки. Лично мне кажется, что морфинг не нужен - плавность или резкость переходов между кадрами будет также определяться свойствами самого алгоритма. Длительность звучания кадра также не должна быть жестко заданной - она может определяться, например, пропорционально количеству доступных путей ветвления на каждом шаге алоритма (применительно к недетерминированному term-rewriting это будет означать, что кадр будет тем короче, чем больше степень детерминированности алгоритма****).
*С одной стороны, эта концепция обобщает принцип алгоритмического синтеза - теоретически таким образом можно получить любой тембр и любое распределение частот - от органных аккордов до агрессивных шумов. С другой стороны, природа алгоритмического синтеза здесь максимально соответствует природе самого генерированного цифрового звука, то есть устраняется необходимость жесткого выбора набора инструментов, жестко заданного соответствия между кодирующими символами и звуком итд. Интересной может оказаться и проблематизация института авторства, которая тут возникает.*****
**Term-rewriting, потому что динамика звука создается изменением вектора данных; недетерминированного потому, что этот принцип допускает и перевод в последовательную форму, и сохранение элемента случайности, расширяя пространство возможных решений.
***Использование белого шума вместо тишины и вычисление изменений вместо прямого кодирования частотного распределения должны сосредоточить творческие усилия на разработке собственно алгоритма, а не на поиске удачных исходных состояний; также внося и вклад в "хэкинг" авторства (см. ниже*****).
****Естественно, вместо существующего языка nondeterministic term-rewriting (Thue) можно создать более удобный декларативный язык, с использованием переменных, масок, макросов итд.
*****Эта проблематизация следует из того, что собственно произведением в данном случае является программа, а не результирующая аудиозапись. Поэтому, во-первых, возможно появление разных (как на уровне алгоритма, так и на уровне исходного текста) программ, порождающих схожие по звучанию аудиотреки; во-вторых, возможны затруднения в определении первичной функциональности программ, музыкальной или немузыкальной. Как следствие всего этого, создание программы, близко воспроизводящей ранее опубликованные треки, может выпадать из сферы действия авторского права. |
|
|