PETELIN.RUСтатьи → Математика плюс музыка

Математика плюс музыка

Юрий Петелин

Компьютерные технологии наступают. Не осталось, пожалуй, ни одной сферы жизни, в которую человек не впустил бы умнеющую день ото дня машину, порой негодуя по поводу самим же им содеянного и не без основания побаиваясь конкуренции. Исключений в этом процессе нет даже для творческих видов деятельности. Транзисторных монстров, которые и считать-то еще умели на уровне второклассника, уже пытались заставить сочинять стихи, а шкафам с несколькими килобайтами памяти на полном серьезе поручали писать музыку. Раз уж даже на заре кибернетики творилось такое, то стоит ли удивляться делам нынешним?

Если среди ваших знакомых найдется выпускник консерватории, профессиональный академический музыкант, музыкальный педагог, попробуйте поговорить с ним о компьютерных музыкальных технологиях. Побывайте на сайтах музыкальных учебных заведений, почитайте статьи, материалы научных конференций и семинаров, иногда попадающие в Интернет. Думаю, вы легко уловите негативное отношение этой категории людей к компьютеру, вторгшемуся в музыку. Вы найдете слова о бездушности машины и бездуховности музыки, которая делается с ее помощью, об отсутствии жизни в оцифрованном звуке и невозможности предать эмоции в звуке синтезированном.

Больше всего критикам музыкального компьютера не дает покоя "цифризация" - цифровая запись и обработка звука, использование математических алгоритмов для синтеза звучания музыкальных инструментов и аранжировки. А уж если сочинение музыки каким-то боком соприкасается с математикой и программированием…

Хотя союз математики с музыкой вроде бы и не должен никого так уж удивлять. Причем, я имею в виду и современность, а не только дела давно минувших дней, события наподобии изобретения Пифагором прототипа современного музыкального строя и его усовершенствование Веркмейстером.

Помните, о чем идет речь? Пифагор заметил, что отношение частот двух соседних нот всегда отличается, а отношение частот двух нот, отстоящих друг от дружки на четыре позиции, наоборот, всегда постоянно и составляет 3/2. Такое созвучие теперь называют квинтой. Взяв квинту за основу, Пифагор вывел музыкальную формулу, которая позволяет на основе частоты базовой ноты, от которой ведется отсчет, и порядкового номера заданной ноты получить искомое значение частоты следующей ноты. В результате последовательного применения формулы получаются звуки, отстоящие друг от друга на квинту. В этом ряду есть все ноты звукоряда. И хотя они относятся к разным октавам, но, поделив или умножив частоту нужного звука на два, можно перенести его в соседнюю октаву. Повторяя операцию деления (или умножения) несколько раз, можно заполнить весь диапазон инструмента. Роль математики в этой музыкальной истории очевидна.

Браво, Пифагор! Избавил музыкантов от головной боли! Однако одновременно создал и новую проблему: в звукоряде, построенном по его формуле, целое число квинт не укладывается в целое число октав. Такое несоответствие получило название "пифагорова комма". Пифагорова комма - не только кажущийся математический парадокс. Главное, что при пифагоровой системе невозможно играть в произвольной тональности, не фальшивя.

Спустя столетия проблема была решена Веркмейстером. И при этом не обошлось без математики. Веркмейстер вместо природного звукоряда создал собственный, положив в основу системы три постулата:

  • отношение частот одинаковых нот в соседних октавах должно быть равно двум;
  • между этими частотами должно лежать ровно двенадцать нот, по числу полутонов в октаве;
  • все полутона должны быть равны.

В соответствии с этими постулатами Веркмейстер разбил октаву на двенадцать абсолютно равных полутонов. Такой звукоряд был назван темперированным. Сущность темперации состоит в небольших изменениях величины интервалов по сравнению с их акустически точной величиной. В 12-ступенном равномерно темперированном строе все чистые квинты уменьшены на 1/12 пифагоровой коммы. От этого строй стал замкнутым, октава оказалась разделенной на 12 равных полутонов, и все одноименные интервалы стали одинаковыми по величине.

Вы скажете, что и Пифагор, и Веркмейстер сделали свои изобретения давно. Хорошо, тогда приведу современный пример математизации музыки. Откроем фундаментальный труд "Теория современной композиции" (издательство "Музыка", 2005). С чего начинается часть III, в которой рассматриваются самые значимые новые формы композиторской техники, так сказать, наиболее существенный вклад композиторов XX века в теорию и практику создания музыки? С анализа техники серийности. Неподготовленному читателю этого учебного пособия, рассчитанного на студентов-музыковедов, конечно, нелегко будет "продраться" сквозь частокол малоинформативных терминов и туманных определений, типа: "Серия - центральный элемент додекафонной композиции, средоточие ее интонационных ресурсов". Если же говорить о сути дела, то все сводится к тому, что серийная музыкальная композиция строится на основе повторения в различных вариантах одного и того же (избираемого индивидуально для данного сочинения) звукового ряда.

Считается, что основателем такой "музыкальной математики" был Арнольд Шенберг. Шенберг сформулировал свой собственный метод композиции, основанный на осознании им того факта, что в процессе сочинения музыки автор подспудно стремится избежать ранее использованных элементов. Этот метод, примененный к высотам музыкальных тонов, а также идея частой смены тональностей, которая привела к появлению политональности и атональности, и послужили фундаментом теории сочинения музыки на основе двенадцати тонов (додекафонии).

Основной принцип теории додекафонии - недопустимость повторения во времени одноименных звуков до тех пор, пока не будут исчерпаны все 12 звуков, на которые делится октава в рамках темперированного строя. Последовательность 12 неповторяющихся звуков и образует серию. Серия является основным элементом всей музыкальной композиции. Звуки серии образуют созвучия, а часть звуков может составлять мелодию. Основным законом является запрет изменения последовательности звуков в серии, нарушения порядка их следования. Различают разновидности серии: ракоход (не смейтесь, это всего лишь серия, прочитанная от последнего звука к первому), инверсия (серия, полученная из первоначальной последовательности путем замены всех интервалов на их обращения), и инверсия ракохода (совпадает с ракоходом инверсии с точностью до транспозиции).

Серию можно представить в виде упорядоченного набора чисел в пределах от 0 до 11, пронумеровав звуки по порядку: 0 = до, 1 = до-диез, 2 = ре, … 10 = си-бемоль, 11 = си, 12 = 0 (по модулю 12) = до (два звука считаются равными, если соответствующие им числа равны по модулю 12).

Для осуществления математических операций над различными формами серий можно представить серию в виде пар. Пара представляет собой "координаты звука" - упорядоченный набор из двух чисел, первое число - это номер звука в серии, второе число - высота тона.

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

Эти композиторы и их последователи, сочиняя произведения, не пользовались математическими терминами. Но математик непременно заметит, что, например, оператор инверсии, ракохода, их комбинация и тождественный оператор (исходная серия) образуют группу. И вообще, получается, что для сочинения музыки можно использовать методы и алгоритмы алгебры. Конечно, вряд ли это облегчает задачу композитора. Да и музыкой ли будет эта череда звуков, если у ее истоков группы, изоморфные подгруппы, циклические подгруппы и кольца, операторы в матричной форме… вместо творческого озарения, ниспосланного небесами? Однако факт остается фактом. Современная научно-музыкальная мысль не отрицает ни технику серийности, ни саму музыку, созданную и создаваемую на ее основе.

Я привел только три примера, иллюстрирующих связь музыки с математикой. На самом деле их гораздо больше.

Так, может быть, раз уж в каких-то обстоятельствах проникновение математики в музыку не считается крамолой, то тогда есть смысл позволить музыканту пользоваться и наиболее совершенным на данный момент математическим инструментом - компьютером? Возможно, все же следует "легализовать" участие компьютера и в сочинении музыки?

Впрочем, никто ни у кого разрешения и не спрашивает. Пока композиторы возмущаются и опасаются, программисты делают свое дело. Появляются программы, в которых реализованы различные алгоритмы сочинения (точнее говоря, формирования) музыки.

Еще раз о Palette

Об одной из таких программ я уже писал в статье "Palette - гармония, поверенная алгеброй". Ее автор - новосибирец Илья Щепихин (http://www.palette-mct.com) - сумел перевести основные законы гармонии, правила голосоведения и приемы развития мелодии на язык математических алгоритмов, которые затем воплотил в удобном графическом интерфейсе.

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

Отличительная особенность Palette заключается в том, что программа лишь предлагает варианты развития короткого исходного фрагмента мелодии, придуманного человеком. Да и в дальнейшей работе над композицией роль человека не сводится только к фиксированию наиболее удачного "экземпляра" музыки, созданной компьютером. В нашей власти выбор алгоритмов и сочетаний их параметров. И тех, и других в Palette очень много и они заметно влияют на конечный результат. Так что эта программа не превращает музыканта в пассивного наблюдателя за сменой картинок на экране, а сохраняет за ним все основные функции творца.

По сути дела Palette - что-то вроде специализированного музыкального калькулятора, на который возложена задача избавления сочинителя музыки от рутинной работы. А в остальном все зависит от человека: что введешь в калькулятор, то и получишь.

В основу программы Palette положена модель, базирующаяся на традиционной теории гармонии. Поэтому с ее помощью и музыка сочиняется традиционно-красивая.

Я хочу познакомить вас еще с одной программой-автокомпозитором. Идеи, реализованные в ней, очень сильно перекликаются с серийной техникой. Не случайно музыка из нее выходит на любителя - атональная и какая-то "бесконцовая".

Поющие фракталы

Программу MusiNum (полное название The Music in the Numbers, вероятно, в переводе не нуждается) разработал Lars Kindermann (http://www.forwiss.de/~kinderma/musinum/musinum.html).

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

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

Строгое математическое определение фрактала нет смысла здесь приводить, а нематематическое, звучит так: "Фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому".

В основе формирования фрактала лежит рекуррентная процедура: т. е. последующие значения (состояния) получают из предыдущих. Фракталы сочетают в себе детерминированные (подчиняются определенному алгоритму формирования) и стохастические (в процессе развития не принимают повторяющихся состояний) свойства. А еще фракталам присуща симметрия.

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

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

Получается, что почти все природные образования имеют фрактальную структуру. Что это значит? Если посмотреть на фрактальный объект в целом, затем на его часть в увеличенном масштабе, потом на часть этой части и т. п., то можно увидеть, что они выглядят одинаково. Форма фракталов воспроизводится в различных масштабах.

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

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

Некоторые фракталы способны формироваться из нуля, т. е. из ничего. Чем не модель возникновения и развития нашего мира?

В наши дни уже сложилась классификация фракталов.

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

Распознать признаки наличия фракталов в жизни общества вряд ли под силу любому отдельно взятому человеку. Узреть фрактал в формуле способен только хороший математик. Для большинства же людей проникновение в таинство фрактала возможно лишь в том случае, когда он представлен в графической форме (правда, не следует забывать, что изображение все равно получено с помощью математических преобразований). В качестве примера рассмотрим один из таких фрактальных объектов.
На рис. 1 представлен "Коврик Серпиньского". Делается он так: середины сторон треугольника соединяют отрезками - получается меньший треугольник внутри большего, и его вырезают. Затем проделывают эту же процедуру с тремя угловыми треугольниками - получается уже четыре дыры и девять треугольников. Повторяют это же и с ними. И так далее до бесконечности. В результате в треугольнике вроде бы и не остается ни одного целого куска площади, но все же на части он не распадается.


Рис. 1. Коврик Серпиньского

В Интернете вы найдете много сайтов, где представлены красивые картинки, которые на самом деле являются фрактальными объектами. Полюбуйтесь несколькими узорами (рис. 2 - 5), взятыми в качестве примеров с сайтов http://www.geocities.com/SoHo/Studios/6648/fractalgallery.htm и http://www.nsu.ru/mmf/tvims/chernova/fract/fr.html.



Рис. 2 - 5. Примеры геометрических фрактальных объектов

Но раз уж алгоритмическим путем можно получить рисунки такой красоты, то почему музыка должна быть исключением? Ведь если мир - фрактал, то музыка часть мира. Хотя, возможно, и наоборот, мир - часть музыки?

В общем, нашлись математики, увлеченные музыкой, которые взялись за разработку программ, моделирующих сочинение музыки на основе фрактальных объектов. Одну из наиболее известных подобных программ - MusiNum - разработал Lars Kindermann.


Рис. 6. Вот он - цифро-музыкальный преобразователь

Программа MusiNum генерирует последовательность целых чисел, на их основе формирует фракталы, которые и преобразует в музыку.

На рис. 6 показаны четыре модуля выбора параметров голосов. На самом деле их может быть до 16. Модули открываются соответствующими кнопками, расположенными в верхней части окна и пронумерованными от 1 до 16.

Одновременно для всех голосов может быть установлен темп композиции (регулятор Tempo). С помощью диалогового окна, открываемого кнопкой Script, задается сценарий, который позволяет изменять параметры синтеза музыки в процессе исполнения композиции, что делает ее более динамичной.

Генерирование голоса активизируется путем установки флажка On. Если установлен флажок Drum Mode, то данный голос будет соответствовать партии одного ударного инструмента. И мелодические и ударные MIDI-инструменты выбирают в раскрывающемся списке Instrument.

Раскрывающийся список Hold служит для выбора характера звучания: Normal - обычное, Pedal - педалированное (ранее взятые ноты продолжают звучать вплоть до естественного затухания), Staccato - отрывистое.

Регулятором Pan устанавливается панорама голоса, а регулятором Volume - его громкость.

В раскрывающемся списке Speed в долях такта выбирается длительность формируемой ноты.

Раскрывающийся список Note предназначен для выбора начального звука: такого звука, который исполняется, если в результате вычислений получается 1. Черными стрелками, находящимися справа от списка, транспонируют начальный звук с шагом в одну октаву. В раскрывающемся списке Scale выбирают лад, в котором будет формироваться композиция (точнее говоря, устанавливают соответствие высоты тона формируемому числу).

Раскрывающийся список Mode позволяет выбрать режим формирования голоса: All - нота будет сформирована для каждого тактового отсчета; New - если в результате вычислений две соседние ноты окажутся одинаковыми, то они будут объединены в ноту удвоенной длительности; Same - нота прозвучит только в том случае, когда она совпадет с предыдущей сыгранной нотой; Rising и Falling - нота прозвучит только в том случае, когда ее тон выше (ниже) тона ноты, ранее сыгранной.

Генерирование каждой из партий происходит на основе одной и той же неизменной формулы. Пользователю доступны для редактирования параметры этой формулы: Step - величина шага, Base - основание системы счисления, Start - смещение начального значения относительно значения параметра Note, Module - основание системы вычетов.

Программа вычисляет звук следующим образом.

Вначале автоматически формируемый номер шага умножается на его величину Step, к результату прибавляется значение Start.

Полученное десятичное число переводится в ту систему счисления, основание которой указано в поле Base. Если, например, Base = 2, то перевод осуществляется в двоичную систему.

Далее производится подсчет суммы цифр в преобразованном числе. К полученному результату применяется операция вычета по модулю, указанному в поле Modulo (проще говоря, находится остаток от деления на Modulo).

В итоге получается номер высоты тона. Этому номеру ставится в соответствие собственно высота тона. Соответствие тона его номеру определяется таблицей, заданной в раскрывающемся списке Scale. Наряду с пресетами (мажор, минор, пентатоника) вы можете использовать несколько заранее созданных собственных ладов. Если в раскрывающемся списке Scale выбрать вариант User, то над списком появится кнопка, которой отрывается окно для редактирования таблицы соответствия тона его номеру.

Таким образом, на каждом шаге программа вычисляет номер высоты следующего тона, а собственно высота тона определяется таблицей Scale.

Приведу упрощенный пример. Пусть первому звуку соответствует до, второму - ре, третьему - ми и т. д. в соответствии с мажорной гаммой (тем самым определена таблица звуковых высот Scale).

Зададим правило вычисления очередного числа на каждом шаге. Пусть правило это будет предельно простым, для этого положим Step = 0, Start = 0, Base = 2, а Modulo - не заданным. Иными словам на каждом шаге мы будем брать очередное целое число, начиная с нуля: 0, 1, 2, 3, 4, 6, 6, 7, 8, 9…

Преобразуем исходные числа в двоичную систему:

0 1 10 11 100 101 110 111 1000 1001...

Сложим все цифры в каждом числе:

1 1 2 1 2 2 3 1 2…

Эта последовательность чисел и представляет собой последовательности номеров высот звука.

Рассмотрим свойства получившейся последовательности чисел.

Последовательность неограничена, но в нашем распоряжении имеется лишь конечный набор номеров звуковых высот. Не страшно. На практике вместо получившегося числа можно брать остаток этого числа от деления его на число, равное количеству звуковых высот в таблице. Пусть исходной базой является число 2, тогда будет сформирован ряд:

0 1 1 0 1 0 0 1…

Получилась бесконечная непериодическая последовательность. Она обладает несколькими свойствами самоподобия. Наиболее очевидными из них являются следующие два свойства.

  1. Последовательность самопорождающаяся и может быть получена из нуля.
  2. Выборка каждого второго элемента из последовательности дает ту же последовательность.

Выходит, что сформированная таким образом последовательность обладает свойствами фрактала. Это означает, что каждый отдельно взятый фрагмент музыки будет с одной стороны неповторимым, а другой - чем-то похожим на остальные фрагменты.

Полученную композицию можно сохранить в файле проекта. А можно и экспортировать ее в MIDI-файл с тем, чтобы подвергнуть дальнейшей обработке в каком-либо универсальном музыкальном редакторе.

На сегодня все. Возможно, в следующей статье я расскажу еще об одном виртуальном композиторе. Если у вас есть информация о подобных программах, поделитесь ею на форуме сайта http://www.petelin.ru.