УДК 004.415.2 Дата подачи статьи: 22.12.15
DOI: 10.15827/0236-235X.114.201-208
МОДЕЛИРОВАНИЕ МУЗЫКАЛЬНОГО ТВОРЧЕСТВА ПРИ ПОМОЩИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ НА БАЗЕ ПЛАТФОРМЫ GENOM
В.О. Арутюнов, аспирант, [email protected]; А.Н. Аверкин, к.ф.-м.н., доцент, [email protected] (Международный университет природы, общества и человека «Дубна», ул. Университетская, 19, г. Дубна, 141980, Россия)
Рассматривается проблема моделирования музыкального творчества с использованием генетических алгоритмов. В ходе работы была спроектирована и реализована программная система GENOM (Gen of music), которая представляет собой расширяемую платформу для проведения экспериментов по моделированию музыкального творчества. Реализация ограничивается моделированием небольших монофонических музыкальных фрагментов. Основные усилия были направлены на создание платформы, покрывающей большинство существующих вариантов проведения экспериментов и предоставляющей возможность расширения. Реализованное ПО включает в себя интерфейс пользователя с настройками для проведения экспериментов и возможностью отображения и проигрывания полученных мелодий, а также программный интерфейс для расширения возможностей системы.
Приложение было реализовано на базе современных веб-технологий и разрабатывалось при помощи кроссплат-форменного свободного ПО (React, React-Router, Webpack, Bootstrap, Babel, Alt, ABCJS).
Созданный программный продукт может служить инструментом для проведения экспериментов в области моделирования музыкального творчества. Также он является основой для создания специализированных, в том числе коммерческих, решений, использующих генетические алгоритмы для моделирования музыкального творчества. Открытость продукта и его расширяемость дают возможность для его дальнейшего усовершенствования и использования.
Ключевые слова: генетические алгоритмы, сочинение музыки, творчество, фитнес-функции, эволюционная музыка, генерация музыки, алгоритмическое создание музыки, моделирование музыкального творчества.
Моделирование музыкального творчества (ММТ) можно описать как алгоритмическое создание музыкальных артефактов и их последующий анализ. Родоначальником ММТ на ЭВМ можно считать Р.Х. Зарипова (сотрудника проф. Д.А. Поспелова). Свою первую работу в данной области он опубликовал еще в 1960 году [1]. В ней, как и в своих последующих работах, Р.Х. Зарипов рассматривает проблемы алгоритмического описания процесса сочинения музыкальных композиций [2].
Использование алгоритмов для создания музыки не является чем-то совершенно новым. Многие из работ в области алгоритмизации процесса создания музыкальных композиций датируются началом XI века [3]. Немало композиторов разрабатывали собственные алгоритмы для упрощения и формализации своей работы. Самой известной такой разработкой является «Шаг к Парнасу» Иоганна Йозефа Фукса. Многие известные композиторы, такие как Бах, Бетховен, Моцарт и др., ссылаются на нее [4].
Широкое распространение компьютеров в XX веке породило новую волну использования алгоритмов для создания музыки. Были не только автоматизированы уже имеющиеся алгоритмические наработки, но и появились новые техники, такие как генетические алгоритмы (ГА) и искусственные нейронные сети.
ГА - это набор эвристических алгоритмов, используемых для моделирования и решения проблем оптимизации. Концепция ГА заключается в том, что решение сводится к поиску подходящей
особи из популяции, эволюция которой продолжается до тех пор, пока не достигнет желаемого результата или не израсходует ресурсы (время, материалы, ограниченное количество поколений) [5].
Задачи, порождаемые ММТ, имеют пересечение с особенностями ГА. ММТ, а именно создание музыкальных композиций или фрагментов, может рассматриваться как задача оптимизации (поиска наилучшей композиции по определенным критериям) на слабо формализованном пространстве. Данную специфику как раз можно считать сильной стороной ГА. Одним из обязательных условий применения ГА является возможность каким-либо образом определить «качество» каждого решения (вычислить так называемый фитнес). За исключением этого, ГА - гибкая техника, объединяющая новаторство и «творческую жилу» в виде мутаций и возможность реализации экспертных знаний в виде ограничений, представленных фитнесом [6].
Предшествующие работы
Использование ГА в музыкальном контексте имеет целый ряд применений. В настоящее время ГА в ММТ используется в синтезе звука [7], в генерации табулатур, в музыкальной классификации и кластеризации, автоматической музыкальной транскрипции, распознавании высоты звука, генерации ритмов [8], гармонизации, импровизации, а также в создании музыкальных композиций.
Первые работы в данной области были проведены Э. Хорнером и Д. Голдбергом в 1991 году.
Они использовали техники ГА для автоматизации процесса создания «тематического перехода» (thematic bridging). Данный процесс заключается в построении недостающих шагов от начального набора нот к финальному в пределах определенного временного ограничения [9].
Наиболее известной работой является GenJam Д. Байлза. Автор создал ряд интерактивных программно-аппаратных решений для джазовых импровизаций [5, 10-13]. В его системе использовалась специальная нотация для представления музыкальных событий, названная GNF (GenJam normal form). Ввиду своего удобства она использовалась и другими авторами [14-16]. Одна из вариаций GNF применяется в системе, описанной в данной работе.
Отдельно стоит отметить работу Б. Джейкоба. Автор использовал комбинацию агентной системы с ГА, компонентами которой являлись «композитор», «ухо» и «аранжировщик». Каждый компонент реализовывался в виде отдельного ГА [17].
В ходе анализа существующих систем были выявлены следующие существенные ограничения:
- отсутствие подробного описания механики работы алгоритмов;
- непредоставление программных решений, что, в свою очередь, затрудняет их использование, анализ и усовершенствование;
- отсутствие согласованности в стратегиях расчета значений основных компонентов ГА системы, таких как фитнес или мутации.
Исходя из названных факторов было принято решение разработать свою систему для проведения экспериментов в области ММТ на базе ГА. Разработка должна содержать положительные особенности проанализированных работ и наработки автора [6], по возможности избегая указанных ограничений. Кроме того, система должна быть расширяемой.
Описание системы
Предлагаемая система является платформой для проведения экспериментов по ММТ при помощи ГА. В контексте работы под ММТ подразумевается моделирование монофонических музыкальных фрагментов. Данная область является обширной, поэтому в работе основной упор сделан на ГА, работающие с эталонным элементом для вычисления фитнес-значений, о чем будет сказано далее.
Контекст ММТ ограничен моделированием мелодий не случайно. Как заметил Р.Х. Зарипов, мелодия - это главный элемент музыкального сочинения. Она является одноголосным выражением музыкальной мысли [2]. Большинство работ ученого были как раз посвящены анализу и синтезу мелодий.
Уровни абстракции в системе. Каждый самодостаточный фрагмент ГА, будь то генетические операторы или вычисление фитнеса, включает работу либо на низком уровне (с генами в хромосомах), либо с более контекстным представлением, например, с некоторой формой нот. Операции скрещивания и мутации работают на генном уровне и используют низкоуровневое представление. Другие операции, более приближенные к контексту ММТ, пользуются доменным представлением музыкального артефакта. К ним можно отнести, например, мутации изменения длин нот с сохранением размера композиций или вычисление фитнеса исходя из совпадений высотной и ритмической линий.
Кодирование. Наиболее простым и общим решением для кодирования в подобных системах принято считать прямое преобразование музыкального артефакта в хромосомы. Тем не менее подобный выбор также требует определения того, что является атомарной единицей измерения - нота или строго фиксированный временной интервал. В рассматриваемой системе используется комплексное представление музыкальных артефактов. Изначальный метод кодирования схож с нотацией GNF [5] и имеет фиксированный размер разбиения (по умолчанию это 1/8). Помимо этого, в системе присутствует промежуточный слой, позволяющий различным компонентам алгоритма получать данные о музыкальном артефакте в разном виде. Так, для получения данных по тактам или в виде коллекции нот предусмотрены специальные команды. В ряде случаев представление в виде коллекции нот дает возможность использовать более наглядные алгоритмы. Базовая система может кодировать мелодии, находящиеся в пределах двух диатонических октав (14 нот). В ней используются лишь простые минорные либо мажорные гаммы, и по умолчанию все входные данные должны быть приведены к Cmaj или Amin. Высотные составляющие кодируются числами от 1 до 14 включительно, пауза кодируется 0, а продолжение предыдущего события, ноты или паузы обозначается числом -1.
Тип хромосом. Контекст использования системы ограничивается работой с монофоническими мелодиями, и, как показал анализ существующих реализаций, для подобных задач успешно применяются монохромосомы. Хромосома является прямой проекцией музыкальной композиции, и размер в один ген сопоставляется с выбранным минимальным временным промежутком в системе (по умолчанию это 1/8).
Тип модели ГА. Системы, использующие ГА в ММТ, помимо прочего, разделяются по типу интерактивности [6]. В предложенной модели реализован автономный вариант ГА. Для упрощения системы в рамках основной функциональности рассматривается только работа с эталоном.
Селекция. Данный компонент не слишком отличается от классических имплементаций ГА. В системе реализованы следующие базовые типы селекции.
• Метод рулетки. Данный тип селекции предполагает, что, чем выше значение фитнеса для особи, тем пропорционально выше ее шанс быть выбранной.
• Ранговая селекция. Данный метод используется для избегания сходимости к локальным опти-мумам и «захвата» сильными особями большей части колеса рулетки. Особи сортируются исходя из значения фитнеса, но вероятность их выбора будет зависеть от ранга и функции ранжирования.
• Турнирная селекция. Предполагает разбиение популяции на подгруппы и выбор наиболее подходящих особей для родительского пула из них.
• Элитарная селекция. Подобная селекция используется для избегания возможной потери особей с высоким показателем приспособленности. Стратегия предполагает автоматический переход таких особей в следующую популяцию.
В системе также предусмотрен выбор параметров для перечисленных типов селекции. Для турнирной селекции предоставляется возможность выбора размера групп (от 2 до 5 особей в группе). Элитарная селекция предполагает выбор количества «лучших» особей, проходящих в следующее поколение. Система обладает возможностью частичной замены популяции при помощи параметра ёваёЬши, который определяет нижнюю границу фитнеса для выживания особи.
Выбор родителей. В модели предусмотрено несколько вариантов выбора пары родителей. По умолчанию система отсеивает из популяции особей, как показано выше (параметр deadLimit), и заменяет их новыми. Особи, прошедшие отбор, могут выбрать себе подобных, с высоким значением фитнеса (инбридинг). Помимо этого, возможен выбор как случайных связей (панмиксия), так и наиболее различающихся особей (аутбридинг).
Кроссинговер. Аналогично предыдущему компоненту кроссинговер не имеет каких-либо отличительных черт, привнесенных контекстом ММТ. В системе реализованы
- кроссинговер с одной точкой;
- кроссинговер с двумя точками;
- равномерный кроссинговер (гены набираются из обоих родителей равномерно).
Система предоставляет возможность выбора любого из вышеописанных типов и, более того, для достижения большего контроля - выбора весов каждого из них.
Мутации. В проанализированных работах можно настраивать только вероятность мутации. Данное ограничение снижает вариативность результатов экспериментов, которые можно провести в системе. Реализованная система нивелирует данное упущение благодаря предоставлению возмож-
ности конфигурации каждого типа мутации. Дополнительно к внутренним настройкам мутации добавляется параметр веса. Вес определяет вероятность выбора той или иной мутации и задается при помощи элемента управления Slider. При выставлении весов для каждого типа мутации веса нормализируются. Далее назначаются пропорционально, как показано в следующих формулах: w.
kw = k • max wi, wni =-± ,
1< i< к к kw
где kw - коэффициент нормализации; к - количество компонентов мутации; wi - i-й ненормированный вес компонента; wni - i-й нормированный вес компонента.
Мутации в системе можно разделить на два типа: базовые и доменные.
Базовые мутации:
- случайная мутация генов;
- копирование (с переносом или заменой) некоторого количества генов;
- перемена местами двух ближайших генов.
Доменные мутации:
- изменение высоты ноты на n ступеней;
- изменение длины ноты в меньшую или большую сторону;
- сортировка некоторого фрагмента по убыванию/возрастанию высот нот;
- сортировка некоторого фрагмента по убыванию/возрастанию размера нот;
- копирование (с переносом или заменой) тактов, группы тактов.
Мутации являются одним из критичных мест ГА, так как от их реализации зависит успешность сходимости алгоритма. Мутации ГА в контексте ММТ выражают творческую, новаторскую, спонтанную составляющую. В данном случае рассматривается крайне упрощенная модель творческого процесса, что позволяет проводить столь грубое сравнение. Второй основной составляющей, от которой зависит успешность, является вычисление значения фитнеса.
Фитнес. Вычисление значения фитнеса - один из наиболее спорных моментов использования ГА, в том числе в области ММТ. На данный момент нет однозначных правил для определения степени качества того или иного музыкального фрагмента.
Существует несколько основных классов, на которые можно разделить методы вычисления фит-неса: основанные на правилах, интерактивные, обучаемые [15, 18].
Помимо этого, можно произвести классификацию по типу вычисления: с использованием эталона и без него.
В текущей реализации системы интерактивный и обучаемый фитнесы не используются. Интерактивный фитнес предполагает создание дополнительного интерфейса для пользователя, в котором от последнего, как от эксперта, требуется опреде-
лять «качество» предъявленного музыкального фрагмента. Данная техника в основном используется для моделей без эталона, так как подразумевает, что дать оценку алгоритмически достаточно сложно. Использование подобного механизма предполагает также разработку специального метода оценок.
Существуют два основных типа оценок: оценка всего фрагмента в целом и оценка более мелких составляющих фрагмента, таких как такты. Подобное добавление интерактивности влечет за собой существенное снижение скорости работы алгоритма, так как требует обратной связи по каждому элементу популяции. В связи с этим используются наименее затратные по времени оценки с простыми шкалами. Например, в работах Байлза [10] используется оценка, состоящая из «хорошо», «плохо», «нейтрально». Для избежания данной проблемы производительности также существует метод обучаемого фитнеса.
Обучаемый фитнес использует данные, введенные пользователем, а также имеет механизм выявления характеристик фрагмента [19]. Затем при помощи машинного обучения алгоритм формирует знания о том, какие фрагменты «хорошие», а какие «плохие». Основной задачей при применении подобного метода является создание механизма выявления характеристик музыкального фрагмента. Возможно, из-за сложности и неопределенности данной задачи работы с обучаемым фитнесом не оправдали ожиданий [13].
Вычисление, основанное на правилах, используется в большинстве работ и представляется в виде алгоритма, способного по входящему закодированному музыкальному фрагменту выдать оценку. В случае использования подобного фит-неса стоит определить, содержит ли он в себе знания о предметной области или реализует некоторую метрику [15, 20]. В ряде работ, например, используются физические характеристики гармоник, на основе которых вычисляется значение фитнеса [21, 22]. Фитнес, основанный на правилах, используется как с эталоном, так и без него. В случае с эталоном в системе требуется заложить специальные метрики, позволяющие вычислить отклонение. В разрабатываемой системе значение фитнесов нормализуется и находится в диапазоне от 0 до 1 включительно, где 1 - это полное сходство с эталоном. Самым простым примером определения значения фитнеса может быть вычисление по приведенному далее алгоритму (параметры шахЭ18рег-бюп от 0 до максимального высотного диапазона, в описываемом алгоритме для простоты и наглядности используется линейное убывание).
1. Эталон и особь из популяции кодируются в хромосомы, начальное суммарное значение фит-неса полагается равным 0.
2. Вычисляются отклонения (? по каждому гену и модуль разности между эталоном (Ог) и рас-
сматриваемой особью популяции (G): d = \Gri- G\.
3. Если отклонение (d) меньше максимального отклонения (maxDispersion), значение фитнеса вычисляется по формуле
0, dt > maxDispersion,
f 1--i-, d - maxDispersion.
maxDispersion
4. На последнем шаге вычисляется суммарное
k
If
значение фитнеса (f): f = —— .
k
Если ген кодирует паузу, отклонение не вычисляется, а дополнительное значение поступит в сумму лишь при полном соответствии кода гена. Если же ген означает продолжение предыдущей ноты или паузы (Hold) (в нашем случае значение -1), то алгоритм рассматривает его как последнее предшествующее ему значение, не равное -1.
В работе представлен ряд фитнесов:
- базовый фитнес с абсолютным соответствием (maxDispersion = 0) (рассчитывается на генном уровне);
- базовый фитнес с вариативным значением отклонения (рассчитывается на генном уровне);
- интервальный фитнес; вычисляется так же, как преобладающие интервалы и отклонение каждого из интервалов от преобладающего для каждого такта (рассчитывается на доменном уровне нотного представления) [14];
- мелодический фитнес; данный тип фитнеса учитывает высотную составляющую фрагмента и ритмическую отдельно по каждому такту и далее суммирует оба этих показателя (рассчитывается на доменном уровне).
Как и в случае с мутациями, пользователю системы предоставляется возможность выбора весов и параметров фитнес-функции.
С точки зрения ММТ в противовес инновационной, творческой составляющей фитнес является ограничителем, рамками. Правильно подобранный фитнес и его параметры позволяют алгоритму наиболее эффективно выбирать подходящие варианты и отсеивать не удовлетворяющие заявленным критериям.
Местоположение доменных знаний. Практически в любой узконаправленной системе, помимо абстрактных компонент, присутствуют компоненты, определяющие ее контекст, в данном случае ММТ. В рассматриваемой модели основное место доменные знания занимают в компоненте вычисления фитнеса и в меньшей степени - в компоненте мутаций. Фитнес является основным методом оценки «качества» музыкальных фрагментов. Именно поэтому на нем сделан акцент. Эта задача не может быть абстрагирована от рассматриваемой области применения ГА. Тем не менее, вынесение
большей части настроек в интерфейс взаимодействия с пользователем позволяет системе быть менее привязанной к реализации заложенных алгоритмов и тем самым более гибкой.
Реализация
Функциональные возможности системы. Программная реализация системы имеет два типа взаимодействия. Первый тип предполагает использование системы для проведения экспериментов и предоставляет следующий функционал:
- добавление новых эталонных музыкальных фрагментов;
- выбор текущего эталонного музыкального фрагмента;
- выбор базовых параметров работы ГА;
- выбор специфических параметров для каждого из компонентов системы (фитнес, мутации, селекция, кроссинговер);
- просмотр результатов эксперимента;
- просмотр музыкальных фрагментов в виде современной музыкальной нотации;
- воспроизведение музыкальных фрагментов.
Второй тип предполагает, что пользователь
займется расширением системы для нужд своих экспериментов. Архитектурная составляющая приложения позволяет осуществлять внедрение дополнительного функционала при помощи системы подменяемых компонентов (plug-in). Пользователю-разработчику предоставляются базовые компоненты и механизм регистрации их в системе. При помощи данных средств возможно добавление дополнительных методов для вычисления фитнеса, мутаций, кроссинговера и селекции.
Стек технологий реализации. В платформы для реализации системы веб-технологии (JS/HTML/CSS). В качестве компонента для отрисовки пользовательского интерфейса используется библиотека React в комбинации с Twitter Bootstrap и связующим звеном React-Bootstrap. Код приложения написан на языке JavaScript стандарта EcmaScript 2015 года. Для компиляции и сборки окружения разработчика и версии приложения для пользователей используется инструмент Webpack в сочетании с набором плагинов. В качестве системы контроля версий используется веб-платформа GitHub.
Основные составляющие системы. С архитектурной точки зрения программная система состоит из двух основных модулей: модуля работы с пользователем, предоставляющего графический интерфейс, и модуля расчета, базирующегося на ГА.
качестве выбраны
Общение между модулями осуществляется в асинхронном режиме. Управляющим модулем является модуль работы с пользователем. Он запускает модуль расчета в фоновом режиме в отдельном потоке для лучшей производительности и предотвращения блокировки пользовательского интерфейса. Общение происходит при помощи пересылки сообщений. После запуска модуля расчета управляющий модуль подписывается на его сообщения и получает информацию о степени готовности эксперимента в виде процентов от максимального количества итераций и о текущем состоянии наиболее пригодного экземпляра популяции. Благодаря подобной низкой связности приложение способно параллельно запускать несколько процессов, осуществляющих эксперименты (рис. 1).
Основные экраны пользовательского интерфейса. Приложение состоит из двух основных экранов: экрана проведения экспериментов (рис. 2)
Рис. 2. Экран проведения экспериментов по синтезу мелодии
Fig. 2. The screen of experiments on melody synthesis
и экрана настроек системы (см. http://www.swsys. ги/ир1оааеМтаяе/2016_2/2016-2-аор/1оря).
Экран проведения экспериментов, в свою очередь, состоит из следующих компонент:
- панель базовых настроек ГА: максимальное количество итераций, размер популяции, размер значения фитнеса, при котором можно заканчивать работу алгоритма, вероятность мутации и др.;
- панели настроек компонентов-поставщиков;
- панель вывода популяции;
- панель вывода нотной нотации для выбранного элемента популяции.
Помимо этого, на любом экране отображаются такие компоненты, как проигрыватель и меню для навигации.
Основные классы системы. Базовым классом, выполняющим работу ГА в системе, является класс вЛ. Данный класс содержит в себе экземпляры посредников, предоставляющие ему компоненты для вычисления фитнеса, кроссинговера, мутации и селекции. Классы-посредники (MutationProvider, CrossoverProvider, Se1ectionProvider, FitnessProvider) предоставляют вЛ свою функциональность исходя из выбранных пользователем настроек. Каждый посредник реализует две основные функции: сбор настроек, выбранных пользователем, и выбор и предоставление механизма вычисления.
В системе предусмотрена возможность добавления новых пользовательских функций вычисления фитнеса, селекции, кроссинговера и мутаций. Для этого требуется создать класс, удовлетворяющий определенному контракту, и зарегистрировать его в соответствующем посреднике.
Компоненты-поставщики. В системе используется концепция компонентов-поставщиков. В описываемой модели мутация, кроссинговер, селекция и фитнес реализованы в виде поставщиков. Каждый компонент-поставщик реализует три основных интерфейса: регистрации компонентов-исполнителей, передачи параметров и выполнения. Интерфейс передачи параметров реализует сбор всех параметров зарегистрированных компонентов. Интерфейс выполнения предоставляет возможность применения каких-либо действий путем простой передачи объекта. А внутри будут выполняться логика выбора компонента-исполнителя и расчеты. К примеру, для вычисления значения фит-неса поставщику фитнесов будет передан элемент популяции, а далее, исходя из настроек поставщика, будет выбран тот или иной исполнитель.
Каждый компонент-исполнитель, регистрируемый в поставщике, должен также реализовывать соответствующий набор интерфейсов: во-первых, интерфейс отрисовки настроек компонента, во-вторых, интерфейс выполнения, который будет запускаться в случае выбора поставщиком данного компонента в качестве исполнителя.
Далее приводится пример работы компонентов-поставщиков (поставщиков фитнеса (ПФ)) при
расчете значения фитнеса одного из элементов текущей популяции ГА.
1. От модуля расчета приходит запрос на вычисление фитнеса, который содержит информацию о сущности в одном из вариантов кодирования.
2. ПФ выбирает подходящего исполнителя. Выбор происходит из установленных настроек системы и порой совершенно случайно. Вероятность определяется весами компонентов-исполнителей.
3. Далее компонент-исполнитель получает данные, производит вычисления и возвращает результат обратно ПФ, который, в свою очередь, возвращает их модулю расчета.
Жизненный цикл эксперимента заключается в следующем.
1. Пользователь выбирает на панели настроек подходящие значения и нажимает кнопку запуска.
2. Приложение открывает отдельный поток с экземпляром модуля работы с данными, который выполняет расчеты, и передает ему настройки, считанные из пользовательского интерфейса.
3. Модуль работы с данными запускает все требуемые модули, обеспечивающие его инфраструктуру, с заданными настройками. Это компоненты-поставщики.
4. Стартует цикл работы ГА, использующий компоненты-поставщики (рис. 3).
5. По завершении работы модуль вычисления отсылает отчет с результатами эксперимента, который содержит коллекцию из конечной популяции и статистику по эксперименту.
6. Модуль работы с пользователем получает данные и формирует из них таблицу, которая отображается в пользовательском интерфейсе. Таблица показывает пользователю данные по фитнес-значе-ниям всех экземпляров популяции. Нажав на строку, пользователь также может загрузить данные по конкретному экземпляру в проигрыватель и в компонент отображения нотной нотации.
Алгоритм создания расширения для системы. Как было показано ранее, система открыта для расширений. Для внедрения дополнительной функциональности требуется выполнить следующие шаги.
1. Выбрать одно из мест расширения (добавление нового метода вычисления фитнеса, мутаций, кроссинговера, селекции).
2. Добавить класс, реализующий контракт, который удовлетворяет выбранному компоненту-поставщику.
3. Зарегистрировать класс в компоненте-поставщике.
После выполнения этих шагов модуль будет доступен в пользовательском интерфейсе и включен в общий цикл работы системы.
В дальнейшие планы по развитию платформы входит добавление возможности проведения интерактивных экспериментов посредством добавления модуля интерактивных ГА. Также планируются к реализации возможности выгрузки получившихся музыкальных фрагментов в различные звуковые форматы; расширенная возможность импорта композиций в виде файлов форматов MIDI, ABC. Кроме того, возможно включение дополнительных хромосом для кодирования ритм-секции и аккомпанемента.
Разработанная система удовлетворяет предъявленным к ней функциональным требованиям. При помощи системы был проведен ряд экспериментов по ММТ. В процессе экспериментов в систему были добавлены новые компоненты, что демонстрирует удобство ее расширения.
В целом система имеет достаточно гибкий интерфейс взаимодействия и возможность конфигурации для проведения экспериментов. В случае, если настройки не покрывают все требования экспериментатора, возможно расширение на уровне написания новых компонентов системы.
Система находится в разработке и общедоступна по адресу https://github.com/sevaru/ga-app5, где можно найти исходный код и руководство к запуску.
Литература
1. Зарипов Р.Х. Об алгоритмическом описании процесса сочинения музыки // Докл. АН СССР. 1960. Т. 132. № 6. С. 1283-1286.
2. Зарипов Р.Х. Машинный поиск вариантов при моделировании творческого процесса. М.: Наука, 1983. 232 с.
3. Roads C. The computer music tutorial. Cambridge, MIT Press, 1996, 1234 p.
4. Cope D. The Algorithmic Composer. Wisconsin, A-R Editions, 2000, 302 p.
5. Biles J.A. A genetic algorithm for generating jazz solos. Proc. Intern. Comp. Music Conf., San Francisco, 1994, pp. 131-137.
6. Averkin A., Arutyunov V. Genetic algorithms for modeling of musical creativity. Proc. 8th Intern. Conf. of Soft Computing, Computing with Words and Perceptions in System Analysis, Decision and Control, Antalya, 2015, pp. 167-174.
7. Horner A., Beauchamp J., and Haken L. Machine tongues XVI: genetic algorithms and their application to FM matching synthesis, Comp. Music Journ., 1993, vol. 17, no. 4, pp. 17-29.
8. Dostal M. Genetic algorithms as a model of musical creativity - on generating of a human-like rhythmic accompaniment, Computing and Informatics, 2005, vol. 24, no. 3, pp. 321-340.
9. Horner A. and Goldberg D.E. Genetic algorithms and computer-assisted music composition, Intern. Conf. on Genetic Algorithms and Their Applications, 1991, pp. 337-441.
10. Biles J.A. Interactive GenJam: interacting real-time performance with a genetics algorithm. Proc. Intern. Comp. Music Conf., San Francisco, 1998.
11. Biles J.A. Autonomous GenJam: eliminating the fitness bottleneck by eliminating fitness. Proc. Genetic and Evolutionary Computation Conf. Workshop Program, San Francisco, 2001.
12. Biles J.A. GenJam in perspective: a tentative taxonomy for genetic algorithm music and art systems, Leonardo Music Jorn., 2003, vol. 36, no. 1, pp. 43-45.
13. Biles J.A. Performing with technology: lessons learned from the genjam project musical metacreation, AIIDE Workshop, 2013.
14. Matic D. A genetic algorithm for composing music. Yugoslav Journ. of Operations Research, 2010, vol. 20, no. 1, pp. 157-177.
15. Papadopoulos G. and Wiggins G. A genetic algorithm for the generation of jazz melodies. 3rd Finnish Artificial Intelligence Conf., 1998.
16. Ozcan E., Ercal R. A genetic algorithm for generating improvised music, 8th Intern. Conf., Evolution Artificielle, EA, Tours, France, 2007, pp. 266-277.
17. Jacob B.L. Composing with genetic algorithms. Proc. Intern. Comp. Music Conf., 1995.
18. Towsey M., Brown A., Wright S., Diederich J. Towards melodic extension using genetic algorithms, Educational Technology & Society, 2001, vol. 4, no. 2.
19. Johanson B., Poli R. GP-Music: an interactive genetic programming system for music generation with automated fitness raters, Genetic Programming 1998: Proc. 3rd Annual Conf., 1998, pp. 181-186.
20. Alfonceca M., Cebrian M., Ortega A. A fitness function for computer-generated music using genetic algorithms, WSEAS Transactions on Information Science and Applications, 2006, vol. 3, no. 3, pp. 518-525.
21. Moroni A., Manzolli J., Von Zuben F., Gudwin R. Vox Populi: an interactive. Evolutionary system for algorithmic music composition, Leonardo Music Journ., 2000, vol. 10, pp. 49-54.
22. Moroni A., Manzolli J., Von Zuben F., Gudwin R. Vox Populi: evolutionary computation for music evolution, Creative Evolutionary Systems, 2002, pp. 205-221.
DOI: 10.15827/0236-235X.114.201-208 Received 22.12.15
MODELING MUSICAL CREATIVITY USING GENETIC ALGORITHMS BASED ON GENOM PLATFORM Arutyunov V.O., Postgraduate Student, [email protected]; Averkin A.N., Ph.D. (Physics and Mathematics), Associate Professor, [email protected] (Dubna International University for Nature, Society and Man, Universitetskaya St. 19, Dubna, 141980, Russian Federation)
Abstract. The paper considers the problem of modeling musical creativity (MMC) using genetic algorithms (GA). During the work we designed and implemented a software system that represents a scalable platform for experiments on MMC. Implementation is limited by simulation of small monophonic melodies. The main efforts were directed to creating a platform that covers the majority of existing options for experiments and provides an opportunity to expand. The developed software includes a user interface with the ability to configure experiments, view scores and play the received melody, as well as a programming interface to extend the capabilities of the system.
The implementation of the application is based on modern web technologies. It was developed with the help of a cross-platform free software (React, React-Router, Webpack, Bootstrap, Babel, Alt, ABCJS).
The software product can be used as a tool for experimentation in MMC. In addition, the product can be used as a basis for creation of specialized solutions (including commercial) that use GA for MMT. The openness of the product and the possibility of extensions provides a possibility for its further improvement and use.
Keywords: genetic algorithms, music composition, creativity, fitness functions, evolutionary music systems, music generation, algorithm composing, modeling of music creativity.
References
1. Zaripov R. On algorithmic description of process of music composition. Dokl. AN SSSR [Proc. of the USSR Academy of Sciences]. Moscow, 1960, vol. 132, no. 6, pp. 1283-1286 (in Russ.).
2. Zaripov R. Mashinny poisk variantov pri modelirovanii tvorcheskogo protsessa [Computer Search in Creative Process Modeling]. Moscow, Nauka Publ., 1983, 232 p.
3. Roads C. The computer music tutorial. Cambridge, MIT Press, 1996, 1234 p.
4. Cope D. The Algorithmic Composer. Wisconsin, A-R ed., 2000, 302 p.
5. Biles J.A. A Genetic Algorithm for Generating Jazz Solos. Proc. of the Int. Computer Music Conf. San Francisco, 1994, pp. 131-137.
6. Averkin A., Arutyunov V. Genetic Algorithms for Modeling of Musical Creativity. Proc. of the 8th Int. Conf. on Soft Computing, Computing with Words and Perceptions in System Analysis, Decision and Control. Antalya, 2015, pp. 167-174.
7. Horner A., Beauchamp J., Haken L. Machine tongues XVI: Genetic algorithms and their application to FM matching synthesis. Computer Music Journ. 1993, vol. 17, no. 4, pp. 17-29.
8. Dostal M. Genetic Algorithms as a Model of Musical Creativity - on Generating of a Human-Like Rhythmic Accompaniment. Computing and Informatics. 2005, vol. 24, no. 3, pp. 321-340.
9. Horner A., Goldberg D.E. Genetic Algorithms and Computer-Assisted Music Composition. Proc. of the Int. Conf. on Genetic Algorithms and Their Applications. 1991, pp. 337-441.
10. Biles J.A. Interactive GenJam: interacting real-time performance with a genetics algorithm. Proc. of the Int. Computer Music Conf. San Francisco, 1998.
11. Biles J.A. Autonomous GenJam: Eliminating the Fitness Bottleneck by Eliminating Fitness. Proc. of the Genetic and Evolutionary Computation Conf. Workshop Program. San Francisco, 2001.
12. Biles J.A. GenJam in Perspective: A Tentative Taxonomy for Genetic Algorithm Music and Art Systems. Leonardo Music Journ. 2003, vol. 36, no. 1, pp. 43-45.
13. Biles J.A. Performing with Technology: Lessons Learned from the GenJam Project Musical Metacreation. AIIDE Workshop. 2013.
14. Matic D. A Genetic Algorithm for Composing Music. Yugoslav Journ. of Operations Research. 2010, vol. 20, no. 1, pp. 157-177.
15. Papadopoulos G., Wiggins G. A genetic algorithm for the generation of j azz melodies. Proc. of the 3rd Finnish Artificial Intelligence Conf. 1998.
16. Ozcan E., Ercal R. A Genetic Algorithm for Generating Improvised Music. Proc. of the 8th Int. Conf. on Evolution Artificielle. EA, Tours, France, 2007, pp. 266-277.
17. Jacob B.L. Composing with Genetic Algorithms. Proc. of the Int. Computer Music Conf. 1995.
18. Towsey M., Brown A., Wright S., Diederich J. Towards Melodic Extension Using Genetic Algorithms. Educational Technology & Society. 2001, vol. 4, no. 2.
19. Johanson B., Poli R. GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters. Genetic Programming 1998: Proc. of the 3rd Annual Conf. 1998, pp. 181-186.
20. Alfonceca M., Cebrian M., Ortega A. A Fitness Function for Computer-Generated Music using Genetic Algorithms. WSEAS Transactions on Information Science and Applications. 2006, vol. 3, no. 3, pp. 518-525.
21. Moroni A., Manzolli J., Von Zuben F., Gudwin R. Vox Populi: An Interactive. Evolutionary System for Algorithmic Music Composition. Leonardo Music Journ. 2000, vol. 10, pp. 49-54.
22. Moroni A., Manzolli J., Von Zuben F., Gudwin R. Vox Populi: Evolutionary Computation for Music Evolution. Creative Evolutionary Systems. 2002, pp. 205-221.