В рамках курса MIT OpenCourseWare состоялась лекция, посвященная основам музыкальной нотации и проблемам цифрового представления партитур. Профессор и студенты разобрали компромиссы, на которые приходится идти при кодировании музыки, а также обсудили границы традиционной западной нотации и возможности компьютерных систем по её анализу.
💾 Экономия байтов: искусство компромисса при кодировании 4:46
В начале занятия студентам было предложено упражнение: закодировать информацию о высоте звука (pitch) и его длительности (duration) всего в один байт (8 бит) . Эта задача иллюстрирует исторические ограничения, с которыми сталкивались создатели первых музыкальных компьютерных систем.
В ходе обсуждения участники выделили следующие стратегии и ограничения:
- Приоритет параметров: Большинство групп решило, что высота звука важнее длительности. Для кодирования 12 хроматических ступеней западной октавы требуется 4 бита ($2^4 = 16$ комбинаций), что оставляет 4 бита на всё остальное .
- Отказ от микротонов: Ограничение западной 12-тоновой системой — это уже осознанный компромисс, отсекающий микротональную музыку .
- Манипуляция длительностями: При наличии всего 4 бит на длительность можно закодировать 16 различных значений. Студенты предложили использовать «базовую единицу» (например, 1/16 ноту) и указывать её множители, либо выделять отдельный бит под «точку», удлиняющую ноту .
- Проблема октав: Если использовать 6 бит для охвата диапазона MIDI (64 ноты), то на длительность остается всего 2 бита, чего хватит только на четыре базовых значения: целую, половинную, четвертную и восьмую .
Профессор отметил, что подобные сверхкомпактные кодировки до сих пор актуальны, например, в шрифте Брайля для слепых, где музыкальные знаки кодируются 6-битными ячейками . Чтобы сэкономить место, там используются контекстуальные правила: одна и та же комбинация может означать разные длительности, если они редко встречаются рядом (например, целая и 128-я ноты) .
🎼 Анатомия музыкального файла: от перфокарт до Muse Data 21:48
Исторически стремление к эффективности диктовалось физическими носителями. В 1960-х годах данные вводились с помощью перфокарт. Если пробить в карте слишком много отверстий («единиц»), она теряла жесткость и застревала в считывателе .
Первым серьезным форматом цифрового представления музыки стал Muse Data, разработанный Вальтером Хьюлеттом . В нём уже можно увидеть зачатки современных стандартов:
- Текстовые маркеры: Вместо одного бита используются понятные слова, например
RESTдля пауз . - Избыточность данных: Длительность ноты часто записывается дважды — как графический символ (четвертная) и как количество «тиков» (внутренних единиц времени) . По мнению профессора, это разделение критически важно для разграничения того, что «напечатано на странице», и того, что должно быть «исполнено во времени» .
- Метаданные: В отличие от простых MIDI-событий, полноценное представление партитуры требует хранения названия произведения, автора, тональности и темпа .
🧪 Границы «стандартной» нотации: где пасуют компьютеры 27:41
Термин Common Western Music Notation (CWMN) описывает привычную нам систему со станами, ключами и нотами, где время течет слева направо, а высота меняется снизу вверх . Однако даже великие классики постоянно нарушали её логику, создавая проблемы для алгоритмов.
Профессор привел примеры «аномалий»:
- Форшлаги (Grace Notes): Они не имеют собственной длительности в рамках такта, а «крадут» время у соседних нот. В такте 4/4 может быть бесконечное количество форшлагов, что ломает математическую проверку заполненности такта .
- Полиметрия у Моцарта: В финале первого акта «Дон Жуана» оркестр одновременно играет в размерах 3/4, 2/4 и 3/8 . Понятие «22-й такт» здесь становится относительным — у каждого инструмента он свой.
- Кросс-становые линии: У Клары Шуман встречаются пассажи, где мелодическая линия физически переходит с одного стана на другой, оставляя пустоты . Компьютеру сложно понять, что это одна линия, а не независимые обрывки.
- Нотация для диджеев и современная сложность: Упоминались графические партитуры и «система юнитов» (TUBS) для западноафриканской музыки, а также специфическая нотация для вертушек (turntablism), которая, впрочем, не прижилась в индустрии [47:26, 48:08].
🏗️ Проблема контейнеров и «временных срезов» 53:38
Существует два основных способа организовать музыкальные данные в коде, и оба, по словам профессора, являются «плохим выбором» в определенных ситуациях .
- Контейнерный подход (Box-based): Иерархия «Счёт -> Партия -> Такт -> Голос -> Нота». Удобно для печати партитур, но крайне неудобно для анализа. Например, чтобы найти «параллельные квинты» или пересечение голосов, программе приходится постоянно прыгать между независимыми массивами данных разных партий .
- Подход временных срезов (Time-slice): Данные хранятся как события, происходящие в конкретные моменты времени. Это упрощает гармонический анализ, но дико усложняет представление таких вещей, как крещендо (которое длится через множество срезов) или форшлаги (которые не имеют четкого времени начала) .
В современной вычислительной музыкологии решением часто становится создание систем, способных мгновенно конвертировать данные из одного представления в другое в зависимости от задачи .
🧠 Музыкальная онтология 1:05:41
В завершение лекции было введено понятие онтологии в двух аспектах:
- Философский: Определение сущности вещей. Когда нота перестает быть нотой? Можно ли ошибиться в 5% нот и всё еще утверждать, что вы играете сонату Бетховена?
- Технический (Computer Science): Набор объектов и связей внутри системы. Онтология определяет правила: может ли папка лежать внутри документа (нет) или может ли один документ находиться в двух местах одновременно .
Профессор подчеркнул, что проектирование музыкальной системы — это прежде всего разработка такой онтологии, которая определяет отношения между высотой, длительностью и исполнителем.