Введение
Техника использования алгоритмов для создания музыки
Алгоритмическая композиция – это техника создания музыки с использованием алгоритмов. Алгоритмы (или, по крайней мере, формальные наборы правил) использовались для сочинения музыки на протяжении веков; например, процедуры построения голосоведения в западном контрапункте часто можно свести к алгоритмической определенности. Этот термин может применяться для описания техник генерации музыки, которые работают без постоянного вмешательства человека, например, посредством введения процедур, основанных на случайности. Однако благодаря живому кодированию и другим интерактивным интерфейсам возможен полностью ориентированный на человека подход к алгоритмической композиции. Некоторые алгоритмы или данные, не имеющие непосредственного музыкального значения, композиторы используют как источник творческого вдохновения для своей музыки. В качестве исходных материалов использовались такие алгоритмы, как фракталы, L-системы, статистические модели и даже произвольные данные (например, данные переписи населения, географические координаты или измерения магнитного поля).
Трансляционные модели
Это подход к синтезу музыки, который заключается в "переводе" информации из существующей не-музыкальной среды в новый звук. Перевод может быть основан на правилах или носить стохастический характер. Например, при переводе изображения в звук, JPEG-изображение горизонтальной линии может быть интерпретировано как постоянная высота тона, а линия, направленная вверх, – как восходящая гамма. Зачастую программное обеспечение стремится извлечь концепции или метафоры из среды (например, высоту или эмоциональную окраску) и применить полученную информацию для генерации песен, используя способы, которыми музыкальная теория обычно представляет эти концепции. Другой пример – перевод текста в музыку, который может осуществляться путем извлечения эмоциональной окраски (положительной или отрицательной) из текста с использованием методов машинного обучения, таких как анализ тональности, и представления этой окраски в терминах качества аккордов, например, минорных (грустных) или мажорных (радостных) аккордов в сгенерированном музыкальном произведении.
Математические модели
Математические модели основаны на математических уравнениях и случайных событиях. Наиболее распространенным способом создания композиций с помощью математики являются стохастические процессы. В стохастических моделях музыкальная композиция создается в результате недетерминированных методов. Композиционный процесс контролируется композитором лишь частично, посредством взвешивания вероятностей случайных событий. Яркими примерами стохастических алгоритмов являются цепи Маркова и различные применения гауссовских распределений. Стохастические алгоритмы часто используются совместно с другими алгоритмами в различных процессах принятия решений. Музыка также создавалась на основе природных явлений. Эти хаотические модели создают композиции из гармоничных и негармоничных явлений природы. Например, с 1970-х годов фракталы изучались и как модели для алгоритмической композиции. В качестве примера детерминированных композиций, созданных с помощью математических моделей, Онлайн-энциклопедия целочисленных последовательностей предоставляет возможность воспроизвести целочисленную последовательность в виде музыки 12-тоновой равнотемпераментной системы. (Изначально она настроена на преобразование каждого целого числа в ноту на 88-клавишной музыкальной клавиатуре, вычисляя остаток от деления на 88, в заданном ритме. Таким образом, последовательность 123456, состоящая из натуральных чисел, соответствует половине хроматической гаммы.) В качестве другого примера, всеинтервальные ряды использовались для компьютерной композиции.
Системы, основанные на знаниях
Один из способов создания композиций — выделить эстетический код определенного музыкального жанра и использовать этот код для создания новых композиций, схожих по стилю. Системы, основанные на знаниях, используют заранее заданный набор параметров для создания новых произведений в том же стиле или жанре. Как правило, это достигается посредством набора проверок или правил, которым должна соответствовать композиция, чтобы считаться завершенной.
Грамматика
Музыку также можно рассматривать как язык с уникальной системой грамматики. Композиции создаются путем предварительного построения музыкальной грамматики, которая затем используется для создания осмысленных музыкальных произведений. Грамматики часто включают правила для композиции на макроуровне, такие как гармония и ритм, а не отдельные ноты.
Подходы к оптимизации
При создании четко определенных стилей, музыку можно рассматривать как задачу комбинаторной оптимизации, где цель состоит в нахождении оптимальной комбинации нот для минимизации целевой функции. Эта целевая функция обычно включает в себя правила конкретного стиля, но может быть также получена с помощью методов машинного обучения, таких как марковские модели. Исследователи генерировали музыку, используя множество различных методов оптимизации, включая целочисленное программирование, поиск по переменным окрестностям и эволюционные методы, о которых будет рассказано в следующем подразделе.
Эволюционные методы
Эволюционные методы композиции музыки основаны на генетических алгоритмах. Композиция создается посредством эволюционного процесса. В результате мутаций и естественного отбора различные варианты развиваются в направлении подходящего музыкального произведения. Итерационное действие алгоритма отсеивает неудачные варианты и генерирует новые на основе тех, что выдержали отбор. Результаты процесса оцениваются критиком – важнейшей частью алгоритма, контролирующей качество создаваемых композиций.
Подход Evo-Devo
Эволюционные методы, в сочетании с процессами развития, составляют эво-дево подход к генерации и оптимизации сложных структур. Эти методы также применяются в музыкальной композиции, где музыкальная структура формируется посредством итеративного процесса, преобразующего очень простую композицию (состоящую из нескольких нот) в сложное, завершённое произведение (будь то ноты или MIDI-файл).
Системы, которые учатся
Системы обучения — это программы, которые не обладают предварительными знаниями о жанре музыки, с которой они работают. Вместо этого они самостоятельно собирают обучающий материал из примеров, предоставленных пользователем или программистом. Затем этот материал обрабатывается для создания музыкального произведения, похожего на исходные примеры. Этот метод алгоритмической композиции тесно связан с алгоритмическим моделированием стиля, машинной импровизацией, а также такими областями исследований, как когнитивная наука и изучение нейронных сетей. Ассайяг и Дубнов предложили марковскую модель переменной длины для изучения продолжений мотивов и фраз различной длины. Марчини и Пурвинс представили систему, которая изучает структуру аудиозаписи ритмического перкуссионного фрагмента, используя неконтролируемую кластеризацию и марковские цепи переменной длины, и синтезирует на её основе музыкальные вариации.
Гибридные системы
Программы, основанные на единой алгоритмической модели, редко достигают эстетически удовлетворительных результатов. По этой причине алгоритмы различных типов часто используются совместно, чтобы объединить их сильные стороны и нивелировать недостатки. Создание гибридных систем для музыкальной композиции расширило область алгоритмической композиции и открыло множество совершенно новых способов алгоритмического построения композиций. Основная проблема гибридных систем заключается в их растущей сложности и необходимости ресурсов для объединения и тестирования этих алгоритмов. Другой подход, который можно назвать компьютерно-поддерживаемой композицией, заключается в алгоритмическом создании определенных структур для последующих "ручных" композиций. Уже в 1960-х годах Готфрид Михаэль Кёниг разработал компьютерные программы Project 1 и Project 2 для алеаторической музыки, результаты работы которых осмысленно структурировались "вручную" посредством исполнительских указаний. В 2000-х годах Андраник Тангиан разработал компьютерный алгоритм для определения временных структур ритмических канонов и ритмических фуг, которые затем были разработаны в гармонические композиции Eine kleine Mathmusik I и Eine kleine Mathmusik II; партитуры и записи см.
which were then worked out into harmonic compositions Eine kleine Mathmusik I and Eine kleine Mathmusik II; for scores and recordings see.