-►
Инфокоммуникационные технологии
УДК 004.5:004.8:004.432.42
А.Н. Кузнецов, Е.В. Пышкин
ФУНКЦИОНАЛЬНОЕ ПРЕДСТАВЛЕНИЕ МУЗЫКИ И ПОДхОДы
К СТРУКТУРНОМУ СИНТЕЗУ
Проблема создания искусственного интеллекта (ИИ) увлекает ученых из различных областей примерно с середины прошлого века. Основная сложность создания ИИ заключается в том, что до сих пор не понятно, что именно нужно воспроизводить. В 1985 г. русский филолог Д.С. Лихачев писал, размышляя о будущем: «...даже вычисления будут делаться компьютерами, так же, как чертежи, расчеты, отчеты, планирование и т. д. Человек будет вносить новые идеи, думать над тем, над чем не сможет думать машина», подчеркивая то, что, в отличие от компьютера, человек наделен творческим потенциалом [1].
В области естественных языков способность к творчеству - это способность сочинять литературные произведения, в области музыки - сочинять мелодии и т. п. В данном смысле компьютер не способен творить. При этом некоторые исследователи указывают, что компьютер способен, например, «сочинить» последовательность случайных чисел, распределенных по равномерному закону, нормальному закону и т. д. [2], а человек неспособен воспроизводить длинные последовательности такого рода. Однако этот факт не рассматривается ни как слабость человеческой фантазии, ни как действительный творческий потенциал вычислительной машины. Еще в 1787 г. Моцарт продемонстрировал возможность использования последовательности случайных чисел как элемента творчества, создав таблицы музыкальных фрагментов1. Бросая игральные кости, из таблицы
1 Справедливости ради следует заметить, что Моцарт был не первым и не единственным композитором, создавшим подобные музыкальные игры. Энциклопедии приводят также имена Кирнбергера (1757) и Гайдна (1790).
можно выбрать фрагменты, которые, затем, записываются друг за другом, и получаются музыкальные сочинения. Используя 176 предоставленных композитором фрагментов, практически каждый может «сочинить» до 1029 композиций, скажем, вальсов или менуэтов [3, 4].
Поэтому, на наш взгляд, основная проблема создания ИИ заключается в наделении его не способностью творить, а способностью воспринимать созданные человеком объекты творчества, моделировать творческий процесс человека, который во многом протекает неосознанно. При этом музыка как объект изучения возможностей приложения ИИ представляет особый интерес, т. к. основной элемент музыки - мелодия - является хорошим примером наименее осознаваемого компонента композиторского творчества и предоставляет сложный и интересный материал для исследования неосознаваемых принципов интеллектуальной деятельности человека [5].
Формальные модели, используемые в алгоритмах обработки музыки, заданной в символьном виде
Восприятие музыкального произведения и жизненный опыт. В области музыки восприятие музыкального произведения напрямую зависит от накопленного жизненного опыта, который, в свою очередь, формируется, в т. ч. и в процессе восприятия музыкального произведения [6, 7]. В различных алгоритмах манипуляции музыкальными произведениями (для извлечения мелодии или главной музыкальной темы, для сравнения музыкальных фрагментов, для определения авторства или исполнителя), жизненный опыт неявно заложен в самих алгоритмах. Например, алгоритм выделения мелодии Skyline (All-Mono) основан на эмпирическом принципе «мелодия
в верхнем голосе», алгоритм Melody lines - на эмпирическом принципе «группировки близких по высоте нот», и т. д. При огромном многообразии подходов большинство известных методов нацелено на извлечение определенной характеристики музыки, например, мелодии, ритма, темы.
Анализ опубликованных алгоритмов позволяет говорить о наличии в любом таком алгоритме некоторого промежуточного слоя - математической модели музыкального произведения, используемой при обработке [8, 9]. Почти все широко известные алгоритмы обработки музыки в символьном виде (далее мы будем рассматривать только музыку в символьном виде: ноты, MIDI и т. п.) используют одну из трех основных моделей внутреннего представления музыкального произведения: представление в форме графа, геометрическое представление и представление в форме набора событий [10].
Использование графов и геометрических моделей. Поскольку обработка информации осуществляется с помощью формальных процедур, использование формальной математической модели более высокого уровня, чем упорядоченное множество музыкальных событий, часто упрощает задачу анализа. Представление произведения с помощью графов или геометрических фигур более выгодно с точки зрения удобства дальнейшей обработки музыкальной информации, например, для дальнейшего сравнения одного музыкального произведения с другим, выделения общей музыкальной темы или цитаты, обнаружения общих (или различных) особенностей исполнения и т. п.
Представление в форме множества геометрических фигур в пространстве (эта идея, видимо, позаимствована из механического пианино) обычно имеет дело с двумерным евклидовым пространством, хотя существуют алгоритмы, работающие и с многомерными пространствами. Некоторые алгоритмы можно легко интерпретировать в контексте многомерного евклидового или неевклидового пространства, даже если изначально алгоритм определен в совершенно других терминах. В качестве примера приведем алгоритм сравнения двух музыкальных фрагментов EMD (earth mover's distance) [11]. Напомним, что алгоритм EMD основан на представлении мелодии в двумерном пространстве (одна из степеней свободы - высота тона, другая - время). Расстояние между двумя музыкальными фрагментами вычисляется с помощью функционала, опреде-
ленного в этом пространстве. Данный алгоритм можно рассматривать как геометрический алгоритм в трехмерном неевклидовом пространстве (х, у, w), а его модификацию EMD3D [12, 13] -как геометрический алгоритм в четырехмерном неевклидовом пространстве (х, у, а, w). Неевкли-довость пространства определяется тем, что перемещение вдольосиж не влияет на функцию расстояния В = -у/X + у2 (для алгоритма EMD) или
В = ^х2 + а2 + у2 для EMD3D.
При этом изменения касаются только интерпретации математической модели, сама оптимизируемая функция и ограничения на переменные сохраняются без изменений.
Недостатки представления музыки с использованием графов, геометрических фигур и множеств событий
Перечисленные выше модели представления музыки широко распространены, однако они обладают рядом существенных недостатков.
Сложность обобщения. С помощью обсуждаемых моделей невозможно описать структуру музыкального фрагмента и произведения в целом, поскольку множества событий, вершин, дуг или фигур однородны, т. е. элементы множества имеют одинаковую значимость для алгоритма обработки. Невозможно сказать, что один подграф похож на другой подграф этого же графа, представляющий музыку в другой тональности, ведь модель не хранит такой информации, хотя эта информация в ряде случаев может быть вычислена. С другой стороны, человек склонен обобщать полученную информацию: искать похожие фрагменты, повторения мелодии и т. п. [7], хотя бы по той причине, что в таком виде надо запоминать меньше информации, а, значит, запоминать и анализировать произведение становится проще.
Сложность описания. Другой важный аспект, слабо учитываемый перечисленными выше методами, заключается в том, что человек использует принципиально другие понятия при описании музыкального произведения, чем способны представить графы, множества событий или геометрических фигур. Так, вряд ли мы встретим музыковеда или преподавателя музыки, использующего термин «одновременно звучащие ноты до-ми-соль» вместо «аккорд до-мажор». Например, В.П. Бобровский описывает сонату до диез минор для фортепиано, соч. 27 .№ 2 Бетховена, известную под названием «Лунная» [14], следующим обра-
зом: «Начальное ядро - речитатив верхнего голоса - первые пять тактов собственно темы - движение от квинты cis-moll к приме E-dur. Вопрошающий характер квинты воплощен в Adagio с полной очевидностью. Оборот Т-D, D-Т создает в пределах двутакта законченное логическое целое - фразу вопросо-ответного гармонического движения, не дающего, однако, разрешения благодаря квинтовому ostinato верхнего голоса» (!) [15]. Подобное описание принципиально отличается от представления, получаемого с помощью графов или геометрических фигур, которые сводят все к последовательностям нот и множествам.
Все эти и многие другие замечания справедливы не только для классического, но и для любого другого музыкального произведения. Ряд проблем (например, проблему группировки нот «до-ми-соль» в аккорд «до-мажор») можно решить путем использования гиперграфов или многомерных геометрических фигур. Однако наращивание глубины гиперграфов или размерности геометрического пространства для покрытия очередного частного случая выглядит нецелесообразным, поскольку многомерные пространства сложно визуализировать, а, значит, сложно исследовать и анализировать вручную. Повышение размерности пространства признаков неотвратимо толкает все научное направление в область статистического обучения (machine learning). Методы статистического обучения, возможно, окажутся эффективными в том плане, что будут найдены алгоритмы, решающие конкретные поставленные задачи, однако наиболее интересные вопросы: что такое мелодия (с формальной математической точки зрения) и как научить машину слушать и понимать музыку -останутся неизученными.
Использование функций для формализации описания музыки
Постановка задачи. Вместо наращивания пространства признаков в традиционных моделях мы предлагаем использовать функции для описания музыки. Этот подход не является новым [16-18], но, на наш взгляд, является необоснованно недооцененным. В данной работе мы не привязываемся к конкретному языку программирования и не пытаемся решить какую-либо конкретную задачу в области компьютерной музыки. Вместо этого, на примере сочинения, известного, вероятно, большинству образованных людей, мы предлагаем краткое описание формальной мате-
матической системы, способной описывать музыку как процесс во времени, терминами, близкими к тем, которые используются музыковедами при анализе музыкальных произведений.
Суть подхода. Основная идея функционального представления музыкального произведения заключается в том, что музыка может быть представлена одной функцией от времени. Время может быть непрерывным или дискретным, в физическом его смысле или в смысле шага моделирования, значением функции могут быть звучащие в данный момент ноты или любая другая многомерная или одномерная величина. Главное, чтобы набор входных и выходных значений мог быть интерпретирован как музыка, т. е. преобразован в последовательность нот, MIDI-событий, LilyPond, piano-roll и пр. (напомним, что речь идет о символьном представлении). Поскольку символьное представление музыки неявно предполагает дискретное время, такое представление возможно всегда. Например, музыкальной функцией может быть таблично-заданная дискретная функция от времени, возвращающая вектор, каждый элемент которого соответствует ноте, звучащей в заданный момент времени.
Структурирование музыки в функциональном базисе. Табличное задание дискретной функции можно сравнить с описанием музыки с помощью множеств событий. Это описание является неструктурированным [19]. Для улучшения структурированности описания введем простейший функциональный базис, состоящий из трех функций p(itch) для высоты звука, (time-)m(ask) для временного интервала, или временной маски, v(oice) для голоса (учитывает полифонию), при этом p(n) е N, где ие{0...итах} - значение высоты тона. Рассматривая абстрактный музыкальный инструмент, можно говорить о том, что этот инструмент способен воспроизвести nmax тонов различной высоты. Если взять, например, MIDI-кодировку, тогда nmax = 127, а, например, p(61) представляет ноту «до диез» первой октавы, соответствующую ноте С#4 в американской нотационной системе (scientific pitch notation)2.
2 В американской нотационной системе октавы нумеруются таким образом, что первой называется октава, которая в русскоязычном музыковедении называется «контроктавой», второй считается большая октава, третьей - малая октава, четвертой - «наша» первая октава, пятой - «наша» вторая октава и т. д.
Рис. 1. Пример нотного фрагмента
Для единообразия и компактности записи далее в статье используется именно эта система.
Г1, start < t < start + len
m(t, start,leri) -
0, в остальных случаях
v(n) = [0, ..., 0, 1, 0, ..., of e RVmax X1, при этом
fl, i = n
v(n)[i] = \ - функция полифонии, где n -
[0. i ф n
номер голоса (из Vmax голосов), в котором звучит нота.
Например, фрагмент, представленный на рис. 1, может быть записан так:
G(t) = p(64) • m(t ,0,-4) • v(1) + p(60) x xm(t ,-4,-4) • v(1) + p(67) • m(t,-4,-4) • v(2).
При использовании упрощенной записи с использованием американской нотационной системы (C4, E4 и G4 соответственно для «до», «ми» и «соль» первой октавы) и обозначения vt :: = v(i) это эквивалентно следующей формуле:
F'(t) = E 4 • m( t ,0,1) • v + +C4 • m(t,4,4) • v + G 4 • m(t,4,4) • v
v'4' 4' 1 44 2
Для того чтобы описать звучание различных музыкальных инструментов, или музыкальных инструментов с непрерывным спектром звучания, можно модифицировать функцию p следующим образом: p(n, i, c), где i - номер инструмента, например, в кодировке MIDI, c (от англ. cents) -число центов3 для инструментов с непрерывным спектром звучания.
Функциональная запись «Лунной сонаты». Запишем начальный фрагмент «Лунной сонаты» (рис. 2) в базисе (p, m, v).
Для упрощения записи и восприятия результирующая функция F(t) представлена суммой функций для отдельных тактов, то есть
3 Напомним, что центом в музыкальной математике называется безразмерная логарифмическая единица отношения двух частот. Две частоты а и Ь с разницей в один цент относятся как 21/1200.
F (t) = F1(t) + F2(t) + F,(t) + F,(t) (1)
Fx(t) = G3 • v • m(t,0,А) +
+C#4• v • m(t, —,—) + E4• v • m(t, —,—) + 1 12 12 ^ 12 12
3 1 4 1
+G3 • v. • m(t, —,—) + C#4 • v. • m(t, —,—) + 1 12 12 1 12 12
+E4 • v1 • m(t, —,—) + G3 • v1 • m(t, —,—) + 1 12 12 1 12 12
7 1 8 1
+C#4• v • m(t, —,—) + E4• v • m(t, —,—) + 1 12 12 ^ 12 12
+G3 • v • m(t, —,—) + C#4 • v • m(t, — ,—) + 1 12 12 1 12 12
+E4• v • m(t,14,]12) + C#2• v2 • m(t,0,1) + +C #3 • v3 • m(t, 0,1);
F2(t) = G3 • v • m(t,1,112) +
+C#4• v • m(t,1^1) + E4• v • m(t,1]|,1]2) +
+G3 • v • m(t,1 —,—) + C #4 • v • m(t,1—,—) + 1 12 12 1 12 12
+E4 • v • m(t,1 —,—) + G3 • v • m(t,1 —,—) + 1 12 12 1 12 12
+C#4• v • m(t,1 —,—) + E4• v • m(t,1 —,—) + 1 12 12 1 12 12
+G3 • v • m(t,1 —,—) + C#4 • v • m(t,1—,—) + 1 12 12 1 12 12
+E4 • v • m(t, 1Ш, 112) + Я1 • v2 • m(t,1,1) +
+H2 • v3 • m(t,1,1);
F3(t) = A3 • v • m(t,2,J4) +
+C#4• v • m(t,2 —,—) + E4• v • m(t,2 —,—) + 1 12 12 1 12 12
+A3 • v • m(t,2 —,—) + C#4• v • m(t,2 —,—) + 1 12 12 1 12 12
+E4 • v • m(t,2 —,—) + A3 • v • m(t,2 —,—) + 1 12 12 1 12 12
+D4^ v • m(t,2—,—) + F #4^ v 1,2—,—) + 1 12 12 1 12 12
+A3 • v • m(t,2 —,—) + D4 • v • m(t,2 — ,—) + 1 12 12 1 12 12
+E4• v • m(t,211,112) + A1 • v2 • m(t,2,4) +
Si deve suonare tutto questo pezzo delicatissimamente e senza sordini
Рис.2.Начальный фрагмент первой части «Лунной сонаты»
+Л2- v3 ■ ш(Г,2,1) + F #1- v2 ■ m(t,21,1) +
+F#2-V ■ т^1,1);
3 2 2
F4(t) = G #3-у1 ■ т( ,3,^) +
+Н #3-V ■ m(t ,3—,—) + F #4-V ■ т^,3—,—) + 1 12 12 1 12 12
+G#3-V, ■ т^,3—,—) + С#4-V, ■ т^,3—,—) + 1 12 12 1 12 12
+Е4- V ■ т(,3 —,—) + G#3-V. ■ т(,3—,—) + 1 12 12 1 12 12
+С#4-V- ■ т^,3—,—) + В#4-V ■ т^,3—,—) + 1 12 12 1 12 12
+F#3-V] ■ m(t,3 —,—) + Н#3-V] ■ т&3 — ,—) + 1 12 12 1 12 12
+В#4-V! ■ т(,3^) + G#1-v2 ■ т(,3,1) + +G#2-v3 ■ m(t,3,1-) + G#1-v2 ■ т^1,1) + +G#2■ V ■ т^,31,1).
Функция (1) формирует вектор-столбец. Значение каждого элемента вектора соответствует ноте, звучащей в данный момент времени (или 0, если нет звука). Запись (1) выглядит громоздкой и по-прежнему не содержит информации о структуре музыкального произведения. В этом смысле предложенный базис не сильно отличается по своей выразительности от представления с помощью графов, множеств событий или геометрических фигур. Преимущества функционального представления проявляются, если немного упростить предложенную формулу путем ввода функций более высокого порядка.
Функция тональности. Прежде всего введем функцию тональности. В западной музыке используется 24 тональности: 12 ступеней хроматического звукового ряда и два лада (мажор и минор). Значением функции тональности является вектор-строка 1х7, которую можно интерпретировать следующим образом:
T 7(cb, sc )[ S ] = P, где P - высота тона в 0-октаве (например, номер MIDI-ноты); S - номер ступени в диапазоне [1...7]; cb = bmod12 определяет класс тона (т. е. C, C#, D, D# и т. д.); b - базовый (base) тон с учетом октавы (например, C#4); sc - лад (scale). В этой статье используются диатонические мажорный (dur) и минорный (moll) лады, хотя, в общем случае представление может быть расширено с учетом других ладов, например, фригийских, пентатонических и т. п.
Определение мажорной и минорной тональности может быть записано с использованием ступеней хроматического звукового ряда: Dur 7( cb) = [ cb, cb + 2, cb + 4, cb + 5, cb + 7, cb + 9, cb +11] Moll 7( cb) = [ cb, cb + 2, cb + 3, cb + 5, cb + 7, cb + 8, cb +11]
Таким образом:
Г Dur7(cb), sc = dur [Moll 7(cb), sc = moll
В терминах стандартных музыкальных обозначений тональности получим следующие варианты:
T 7(C, dur ) = C-dur, T 7(C, moll ) = C-moll,
T 7(C #, dur ) = Cis-dur, и т. д.
Музыкальные интервалы. Аналогично можно ввести музыкальные интервалы в виде векторов-строк N12, например (для примы, малой секунды, секунды и октавы):
Prima(b) = [b,b] = [0,0] + b x I DimSecond(b) = [b, b +1] = [0,1] + b x I Second (b) = [b, b + 2] = [0,2] + b x I
Octave(b) = [b, b +12] = [0,12] + b x I, где I = [1,1].
Созвучия. В общем виде созвучия (музыкаль-
T7(cb,sc)=
ные интервалы, музыкальные кластеры, аккорды и их трансформации) можно представить, введя функцию Chord:
Chord(cb,sc,ctype,octl,oct2, ..., octm) = = [T7(cb, sc)[nj, T 7(cb, sc)[n2], ...,
, T7(cb, sc)[nm\\ +12 • [oct1, oct2, octm \ =
= T7(cb,sc) x CX (ctype) +12 • [oct1, oct2, ..., octm ] = = C(cb,sc,ctype) + Inv(oct1,oct2, ..., octm),
где cb - класс базового тона (например, C, D, E и т. д.); CX() - матрица, выбирающая определенные ступени из основных звуков тональности, определяет созвучие; ctype - тип созвучия (тоническое трезвучие, аккорд с задержанием и т. п.); Inv() -функция инверсии созвучия; {oct1,oct2, ..., octm} -номера октав, в которых звучат соответствующие ступени.
Например, доминантсептаккорд в тональности C-dur в 4-й октаве можно записать следующим образом (напомним, что доминантсептаккорд в тональности C-dur состоит из звуков G-H-D-F):
G7 = [T 7(C, dur )[5], T 7(C, dur )[7], T 7(C, dur )[2], T 7(C, dur)[4]] +12 • [4,4,5,5] = = T7(C, dur) x C(dom) + Inv(4,4,5,5)
Отметим, что в данной статье встречаются следующие типы аккордов:
ton, тоническое трезвучие
ctype — ' dim, уменьшенное трезвучие
sus4, аккорд с задержанием с квартой
Аккорд может быть определен и относительно конкретного звука:
Chord(cb,sc,ctype,oct1,oct2, ..., octm) =
= CR(b,sc,ctype) + Inv(ofSi,ofs2, ..., ofSm), где CR() определяет аккорд в конкретной октаве, b задает базовый тон конкретной высоты (например, C4, C#4, D4, D#4 и т. д.), f ofs2, ..., ofsm} - смещение октавы (Octave oFfSet).
Очевидно, что в рамках хроматического звукового ряда из 12 нот для любого a e Z выполняется следующее тождество:
CR(b,sc,ctype) + Inv(ofs1,ofs2, ..., ofSm) = = CR(b - 12a, sc,ctype) + +Inv(ofsx + a,ofs2 + a, ..., ofsm + a).
CR(b, sc, ctype) + +Inv(ofs1, o/s2, ..., ofsm ) = C (cb, sc, ctype) +
При a =
12
получаем (b - 12a = bmod12 =
+Inv I of-j +
12
f +
12
, ..., ofsm +
12
= cb), откуда следует
Зависимость от времени. Все описанные выше функции не зависят от времени, поскольку являются статическими характеристиками тональности. Временных зависимостей, в сущности, может быть только две: ноты звучат одновременно или последовательно. Для одновременно звучащих нот можно ввести функцию CON(current), имеющую следующий вид (с учетом упрощения обозначений, достигаемого введением матрицы CONX):
CON (t, start, len, ax, a2, ..., an ) = = [v(aj),v(a2), ..., v(an)]T • m(t,start,len) = = CONX (ax, a2, ..., an ) •m(t, start, len), nxV
где CON() e N max , v(at), i e {1, 2, ..., n} - голос (в полифонии); n - число звучащих одновременно нот; Vmax- максимальное число одновременно звучащих голосов.
Легко заметить, что произведение Chord (...) • CON (...) образует функцию для звучащего (во времени) аккорда, при этом каждая из одновременно звучащих нот звучит в своем голосе, например, для аккорда «до мажор» первой октавы имеем:
(C (C, dur, ton) + Inv(4,4,4)) x xCON(t,0,1,1,2,3) = C4 • v • m(0,1) + +E4 • v2 • m(0,1) + G4 • v3 • m(0,1).
Для последовательно звучащих нот можно ввести функцию SEQ(uence):
SEQ(t, start, itlen, cnt, rp) =
m((t - start) mod rp, 0, itlen) m((t - start)mod rp,itlen, itlen) m((t - start)mod rp,itlen • 2,itlen)
m((t - start)modrp,itlen • (cnt -1),itlen)
где SEQ() e RCNTx1 ; CNT - число нот в последовательности; itlen - длительность ноты; start -время начала последовательности; rp - период повторения (Repetition Period).
Обобщая функцию SEQ на случай неравных длительностей нот в последовательности, можно
считать itlen функцией натурального аргумента, возвращающей длительность индивидуального шага развертки:
SEQ(t, start, itlen(n), cnt, rp) =
m((t - start) modrp,0,itlen(l)) m((t - start)modrp,itlen(1),itlen(2)) m((t - start) mod rp, itlen(1) и itlen(2) • 2, itlen(3))
m
(t - start) mod rp, ^ itlen(i), itlen(CNT)
В частном случае itlen(t) может быть константой.
Артикуляция, украшения, динамика. С помощью функций, зависящих от времени, можно ввести распространенные музыкальные фигуры: артикуляции (глиссандо, стаккато, легато), украшения (морденты, трели, форшлаги), типичные последовательности звуков (гаммы, арпеджио и т. п.).
В рамках данной статьи не будем затрагивать все подробности артикуляции и украшений, представим лишь возможные определения функций для примеров типичных звуковых рядов - арпеджио (arpeggio) и гамма (scala):
Arpeggio(t, Chord, start, itlen) =
= A(t, Chord, start, itlen) = = Chord () и SEQ(t,, start, itlen,..).
Scala(t, b, sc, start, itlen) = = T 7(b, sc) и SEQ(t, start, itlen,...).
Представление «Лунной сонаты» в структурном базисе. Используя формальные преобразования можно привести выражение (1) к виду:
f (t) = (O( c # е) • con (t, o, i, i, е) и
и A | t, 0R(0 #4, moll, ton) и Inv(0,0, -11),0,1 j и
ит(0,1) • v3) и (O(H1) • OON (t, 1,1,1,2) и и A | t, 0R(0 #4, moll, ton) и Inv(0,0, -1),1,1 j и
ит(1,1) • v3) и (O(A1) • OON\ t,2,°,\,2 | и
и AI t, OR( A3, dur, ton) и Inv(0,0,0),2, — | и
ит(е,2) • V3) и (O(F #1) • OON ^ ^2,2,1,2 ^и и A11, OR( D4, dur, ton) и Inv(0,0, -1)21, ^ j и ит(е^,-е) • V3) и (O(G #1) • OON ^ t,3,2,1,2 j и и A || t, OR(G #3, dur, ton) и Inv(0,0,0), 3,1 J и
>m(3,—) •иv3 и
1 1
и A It t, OR(O #4, moll, ton) и Inv(0,0, -1),3 -,—j> *m(3-4,4) • V3) и (O(G #1) • OON 11,3^,|,1,е )и и A \ t, OR(G #3, moll, sus4) и Inv(0,0,0),3^, ^ j и
«1 Ц
>m(3^,4) • v3и и A \ t, OR(H #3, moll, dim) и Inv(0,0, -1),3 3, ^ j и
«3 Ц , >m(34,4) и vз),
где O - октава; A - арпеджио; OR - созвучие (аккорд); Inv - инверсия аккорда; m - временная маска; (vj, v2, v3} - голоса; t - время.
Если аргументы арпеджио и октавы превратить в функции, получим следующее представление:
F (t) = O(u (t)) • OON (v1, v2 ) и и( A(t, OR(v(t), A(t), start(t), itlen(t)) и Inv(0,0,-1))) • v3;
u = [ O #2, HI, A1, F #1, G #1, G #1] •SEQ(...); v = [O #4, O #4, A3, D4, G #3, O #4, G #3, H #3] • SEQ(...).
В полученном выражении для F(t) функции M(t) и v(t) являются, в некотором роде, каркасом произведения, т. к. для них невозможна дальнейшая декомпозиция на другие стандартные функции в заданном базисе.
Эксперименты с данным произведением и с рядом других классических сочинений показывают, что изменение любых функций, кроме функций каркаса, существенно не влияет на узнаваемость произведения (рис. 3).
4
Рис. 3. Вариация на тему начального фрагмента «Лунной сонаты»
На пути к применению структурного синтеза в области музыки
Как было показано выше, функциональная запись способна отобразить структуру произведения с любым уровнем детализации в терминах, используемых в музыковедении. Другим важным преимуществом функционального представления по отношению к графам и геометрическим фигурам является возможность визуализации за счет использования формализма функциональных схем, аналогичных тем, которые используются при описании структуры цифровых устройств.
На примере «Лунной сонаты» Бетховена, визуализация каркаса может быть выполнена с помощью графиков функций м(?) и v(t), как показано на рис. 4.
Соответствующая функциональная схема, фактически реализующая декомпозицию произведения в функциональном базисе, представлена на рис. 5.
Для инженеров и программистов, привыкших работать больше со схемами, чем с нотами, такие инструменты визуализации являются весомым аргументом в пользу использования функционального представления музыкального произведения. Сам процесс преобразования музыки становится больше похожим на процесс оптимизации функ-
циональной схемы устройства в заданном базисе.
Помимо возможности применения инструментов и методов структурного синтеза, другим несомненным преимущества функционального представления музыкального произведения является возможность повторного использования библиотек алгоритмов и прикладных программ, разработанных для манипуляции математическими выражениями в символьном виде (MathCAD, МаШетайса и др.), а также систем автоматического доказательства теорем для проверки выдвинутых гипотез.
В статье рассмотрена возможность функционального представления музыкального произведения, приведен пример функционального базиса, описаны некоторые процедуры преобразования музыкальных функций. В результате работы сформулирован ряд гипотез, образующих поле для дискуссии и дальнейшей работы:
• побочным эффектом функционального разложения музыкального произведения, рассматриваемого в статье, оказалось расщепление музыки на голоса, т. е. выделение мелодии и аккомпанемента;
• каркас обусловливает уникальность и узнаваемость композиции;
70 60 50 40 30 20 10
time
Рис. 4. Графики функций каркаса
Рис. 5. Функциональная схема начального фрагмента «Лунной сонаты»
• минимальная форма записи (в смысле минимального количества символов при записи в заданном базисе) обеспечивает наилучшее разбиение композиции на элементарные блоки, соответствующие восприятию композиции музыкантом в том же функциональном базисе.
Независимо от того, найдут ли данные гипотезы свое подтверждение в ходе дальнейших исследований, авторы считают, что в данной статье наглядно продемонстрировано, что функциональ-
ное представление может рассматриваться как связующее звено между музыкой как искусством и математикой как точной наукой. Представление музыки с помощью функциональных схем открывает новые возможности для анализа музыкальных произведений как инженерам, так и программистам, давая возможность поупражняться в функциональном программировании, которое когда-то считалось основой искусственного интеллекта [20].
СПИСОК ЛИТЕРАТУРЫ
1. Лихачев, Д.С. Учитесь учиться [Текст] / Д.С. Лихачев // Письма о добром и прекрасном; Сост., общ. ред. Г. А. Дубровской. -М.: Дет. лит., 1985.
2. Cope, D. Computer Models of Musical Creativity [Текст] / D. Cope. -The MIT Press, 2005.
3. Mozart, W.A. Anleitung. Walzer oder Schleifer mit zwei würfeln zu komponiren, so viele man will, ohne etwas von der Musik oder Komposition zu verstehen (K 516f) [Текст] / W.A. Mozart. -N. Simrock. -Bonn, 1793.
4. Noguchi, H. Mozart - Musical Game in C K. 516f [Электронный ресурс] / H. Noguchi. -1997. -Режим доступа: http://www.asahi-net.or.jp/~rb5h-ngc/e/ k516f.htm
5. Гаазе-Рапопорт, М.Г. Машинное творчество / М.Г. Гаазе-Рапопорт, Р.Х. Зарипов // Искусственный интеллект. -В 3-х кн. Кн. 2. Модели и методы: Справочник; Под ред. Д.А. Поспелова. -М.: Радио и связь, 1990. - С. 126-137.
6. Deutch, D. Music Perception [Текст] / D. Deutch // Frontiers in Bioscience. -2007. -№ 12.
7. Snyder, B. Music and Memory: An Introduction [Текст] / B. Snyder. -Cambridge, Mass. [u.a.]. -MIT Press, 2000.
8. Uitdenbogerd, A.I. Manipulation of music for mel-
ody matching [Текст] / A.L. Uitdenbogerd, J. Zobel // In Proc. of the 6 th ACM international Conf. on Multimedia. -ACM NY, 1998. - P. 235-240.
9. Isikhan, C. A survey of melody extraction techniques for music information retrieval [Электронный ресурс] / C. Isikhan, G. Ozcan // In Proc. of 4th wnf. on Interdisciplinary Musicology (SIM'08). -2008. -Режим доступа: http://cim08.web.auth.gr
10. Kuznetsov, A. Function-based and circuit-based symbolic music representation, or Back to Beethoven [Текст] / A. Kuznetsov, E. Pyshkin // In Proc. of the 14th International Conf. on Humans and Computers. -University of Aizu Press, -2012.
11. Typke, R. Using transportation distances for measuring melodic similarity [Электронный ресурс] / R. Typke [et al.] // In Proc. of the International Conf. on Music Information Retrieval (ISMIR). -2003. -Режим доступа: http://ismir2003.ismir.net
12. Kuznetsov, A. Searching for Music: From Melodies in Mind to the Resources on the Web [Текст] / A. Kuznetsov, E. Pyshkin // In Proc. of the 13 th International Conf. on Humans and Computers (HC-2010), University of Aizu Press, 2010. -P. 152-158.
13. Кузнецов, А.Н. Алгоритм сравнения нотных
фрагментов при поиске музыкальной информации по образцу мелодии [Текст] / А.Н. Кузнецов, Е.В. Пыш-кин // Научно-технические ведомости СПбГПУ Сер. Информатика. Телекоммуникации. Управление. -2011. -№6-1 (138). -С. 195-202
14. Бетховен, Л. ван. Соната для фортепьяно (Лунная). Соч. 27. № 2 [Клавир] / Л. ван Бетховен. -Будапешт: Эдицио Музика, 1959. -Z. 8151.
15. Бобровский, В.П. Соната Бетховена «Quasi una Fantasia» cis-moll («Лунная») [Электронный ресурс] / В.П. Бобровский. -Режим доступа: http://www.lafamire.ru/index.php?option=com_ content&view=article&id=520:2010-04-04-15-06-50&catid=21:2010-05-15-13-56-57&Itemid=70
16. Downie, J.S. The scientific evaluation of music information retrieval systems: foundations and future [Текст] / J.S. Downie // Comput. Music J. - June 2004.
-Vol. 28. -P. 12-23.
17. Magalhaes, J.P. Functional modelling of musical harmony: an experience report [Текст] / J.P. Magalhaes, W.B. de Haas // SIGPLAN Not. - Sept. 2011. -Vol. 46. -P. 156-162.
18. Pinto, A. Method and environment for the retrieval of structured music information [Текст] / A. Pinto, G. Haus // In Proc. of the Second International conf. on Automated Production of Cross Media Content for Multi-Channel Distribution. - 2006. - P. 266-272.
19. Doraisamy, S. Polyphonic music retrieval: the n-gram approach [Текст] / S. Doraisamy // SIGIR Forum. -June 2004. -Vol. 39. -P. 58-58.
20. Norvig, P. Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp [Текст] / P. Norvig. -San Francisco, CA, USA, -Morgan Kaufmann Publishers Inc, 1992.