Введение в генеративную музыку


В современном понимании генеративная музыка – это музыка, созданная каким-либо алгоритмом без прямого участия человека. На самом деле, попытки создания музыки без участия человека (точнее, без принятия человеком композиционных решений) известны уже довольно долгое время. Так, в середине XVIII века в кругах европейских композиторов была популярна «музыкальная игра в кости»: на каждом ходу этой игры игрок случайным образом (бросая кости) выбирал 2 из 6 имеющихся у него на руках карт и дописывал к уже имеющемуся на столе музыкальному отрывку последовательность нот, изображенных на выбранных картах. Таким образом, случайные комбинации костей генерировали к концу игры небольшое музыкальное произведение. Что интересно, музыкальные фрагменты на карточках были подобраны таким образом, что полученные музыкальные произведения звучали в большинстве своем очень даже неплохо. Этот факт – заслуга составителей музыкальных карточек, которыми были, в том числе, и всемирно известные композиторы: Моцарт, Гайдн и другие.

С тех пор генеративная музыка, конечно, изменилась. С развитием новых технологий появлялись новые подходы к композиции, к созданию звука, к концертному исполнению - и вот мы стремительно попадаем в XXI век, когда музыка и компьютерные технологии стали практически неотделимы.

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

На данный момент самым популярным приложением для генерации музыки является Mubert – приложение, генерирующее бесконечный музыкальный поток заданного жанра.  Насколько известно в данный момент, разработчики Mubert смогли совместить анализ нотных последовательностей с анализом других характеристик трека. Алгоритм работает следующим образом:

  •  Пользователь выбирает жанр/настроение трека
  •  Mubert генерирует музыку в заданном жанре на основе набора семплов     этого жанра

Семплом называется короткий музыкальный отрывок, обычно длиной в несколько тактов. Mubert обучается на выборке треков заданного жанра (возможно, на выборке из треков, заранее собранных из данного набора семплов), после чего случайным образом выбирает 1-й семпл, после чего подбирает наиболее соответствующий ему следующий семпл и т.д. Здесь и заложена, пожалуй, основная сложность алгоритма - подбор метрики «соответствия», поскольку нам приходится анализировать довольно большое количество признаков – тональность, насыщенность, скорость, высоту семпла, возможно, его частотные характеристики.

Своим примером Mubert вдохновил довольно большое количество компаний заняться генерацией музыки. Сейчас этот сегмент рынка приложений очень активно развивается. В современное время все большее внимание уделяется авторским правам, и очень многим предприятиям необходимо лицензионное музыкальное сопровождение. Владельцам кафе нужна легкая фоновая музыка, разработчикам игр и видеографам - подходящий саундтрек, и сервисы генеративной музыки способны предоставить им все необходимое, причем в неограниченном количестве – нужно всего лишь приобрести бизнес-подписку.