Алгоритмическая композиция


Алгоритмы (или, по крайней мере, формальные наборы правил) веками использовались для сочинения музыки; процедуры, используемые для построения голоса в западном контрапункте , например, часто могут быть сведены к алгоритмической детерминированности. Этот термин можно использовать для описания методов создания музыки, которые работают без постоянного вмешательства человека, например, путем введения случайных процедур. Однако с помощью живого кодирования и других интерактивных интерфейсов возможен полностью ориентированный на человека подход к алгоритмической композиции. [1]

Некоторые алгоритмы или данные, не имеющие непосредственного музыкального значения, используются композиторами [2] в качестве творческого вдохновения для их музыки. В качестве исходных материалов использовались такие алгоритмы, как фракталы , L-системы , статистические модели и даже произвольные данные (например , цифры переписи населения , координаты ГИС или измерения магнитного поля ).

Композиционные алгоритмы обычно классифицируются по конкретным методам программирования , которые они используют. Результаты процесса затем можно разделить на 1) музыку, сочиненную компьютером, и 2) музыку, сочиненную с помощью компьютера. Музыку можно считать сочиненной компьютером, когда алгоритм может самостоятельно делать выбор в процессе создания.

Другой способ сортировки композиционных алгоритмов состоит в том, чтобы исследовать результаты их композиционных процессов. Алгоритмы могут либо 1) предоставлять нотную информацию ( ноты или MIDI ) для других инструментов, либо 2) обеспечивать независимый способ синтеза звука (воспроизведение самой композиции). Существуют также алгоритмы, создающие как нотные данные, так и звуковой синтез.

Один из способов классификации композиционных алгоритмов — по их структуре и способу обработки данных, как показано в этой модели шести частично перекрывающихся типов: [3]

Это подход к синтезу музыки, который включает «перевод» информации из существующей немузыкальной среды в новый звук. Перевод может быть как основанным на правилах, так и стохастическим . Например, при преобразовании изображения в звук изображение горизонтальной линии в формате jpeg может быть интерпретировано в звуке как постоянный шаг, а линия, наклоненная вверх, может быть восходящей шкалой. Часто программное обеспечение стремится извлечь понятия или метафоры из среды (например, рост или настроение) и применить извлеченную информацию для создания песен, используя способы, которыми теория музыки обычно представляет эти понятия. Другой пример — перевод текста в музыку [4] [5] .который может подходить к композиции, извлекая настроение (положительное или отрицательное) из текста с использованием методов машинного обучения , таких как анализ настроений, и представлять это настроение с точки зрения качества аккордов, таких как минорные (грустные) или мажорные (счастливые) аккорды в сгенерированном музыкальном выводе. [6]