На лекции курса MIT OpenCourseWare, посвященной музыкальным информационным технологиям, рассматриваются фундаментальные принципы представления музыкальных данных. Основное внимание уделяется переходу от отдельных нот и высот к сложным структурам — музыкальным партитурам. Профессор анализирует концепции онтологии в контексте программирования, разбирает успехи и типичные ошибки студентов в работе с музыкальным кодом и намечает вектор развития форматов записи музыки — от классического MusicXML до современных адаптивных стандартов.
🎵 Итоги первой практики: ошибки модуло и «грязные трюки» 0:11
В начале занятия преподаватель подвел итоги выполнения первого практического задания (P set 1), отметив высокий уровень работ, особенно в части манипуляций с интервалами и инверсиями . Однако были выявлены системные сложности, связанные с математическим представлением музыки.
Типичные технические проблемы:
- Modulo 12 и альтерации: При расчете высотных классов (pitch classes) от 0 до 11 многие забывали применять оператор
mod 12после добавления знаков альтерации . Например, «Си-диез» (B#) — это не просто11 + 1, а(11 + 1) % 12, что возвращает нас к 0 (до). - Энгармонизм: Сложности возникали при кодировании редких нот, таких как «си-дубль-диез» . Профессор отметил, что для упрощения алгоритмов часто создаются массивы соответствий, но они должны корректно обрабатывать энгармонически равные звуки (C# и Db).
- Сравнение множеств: Одной из ловушек задания была проверка возможности трансформации одного набора звуков в другой через инверсию.
- Студенты часто забывали проверить количество нот: невозможно трансформировать трезвучие в септаккорд (из 3 нот в 4) с помощью изученных инструментов .
- «Грязный трюк» с пустым множеством: инверсия пустого множества дает пустое множество, что приводило к вылету некоторых алгоритмов, не учитывающих этот крайний случай .
👥 Стейкхолдеры и разница восприятия высоты звука 10:31
Профессор обсудил со студентами, как разные группы пользователей (стейкхолдеры) требуют специфических способов представления высоты звука.
Основные категории и их потребности:
- Звукорежиссеры: Для них приоритетны точные значения частот (в Гц). Музыканту цифра 440 Гц скажет меньше, чем название ноты «ля», но для анализа сигналов это критически важные данные .
- Гитаристы: Часто игнорируют энгармоническую запись и ноты, предпочитая табулатуры или позиции на грифе (fret positions) .
- Теоретики и когнитивисты: Исследуют «подразумеваемую теорию музыки» у исполнителей, не знающих нот, но обладающих интуитивным пониманием структуры (например, импровизации на балийских гамеланах) .
- Компьютеры и DAW: Для цифровых рабочих станций идеальным является отсутствие энгармонических сложностей и использование MIDI-номеров, что упрощает вычисления .
Интересное наблюдение было сделано в контексте «абсолютного слуха». По словам профессора, люди с абсолютным слухом иначе воспринимают музыкальную структуру: они могут не заметить повторения контура мелодии, если она транспонирована, так как воспринимают каждую ноту как уникальную фиксированную сущность .
🏗️ Онтология музыки: таксономия и меронимия 23:04
Центральная теоретическая часть лекции посвящена онтологии — определению того, из чего состоит музыка и как объекты связаны между собой в коде. Профессор выделил два ключевых типа отношений:
1. Таксономия (отношение «is a» / «является»)
Это иерархия классов и подклассов .
- Пример: «Менуэт — это танец», «Стаккато — это тип артикуляции», «Половинка — это нота».
- В программировании это реализуется через наследование (subclassing). Например, все числа в Python являются подклассами
Number, ноfloatиintимеют свои особенности .
2. Меронимия (отношение «has a» / «обладает»)
Это отношение части и целого .
- Пример: Нота имеет длительность, нота имеет флаг или штиль.
- Проблема дизайна: Имеет ли «четвертная» нота потенциал для флага, который просто не активен, или флаг — это атрибут только восьмых и более мелких длительностей? . От этого выбора зависит архитектура музыкального ПО.
📄 От «Розеттского камня» до будущего нотации 46:11
Профессор представил инструмент Крейга Саппа (Craig Sapp) — «Розеттский камень цифровых музыкальных представлений» . Это ресурс, где одна и та же мелодия закодирована в 32 различных форматах (MusicXML, Humdrum, ABC и др.).
Эволюция форматов:
- ABC: Старый, но живучий формат благодаря своей исключительной простоте .
- Musedata: Формат, где данные представляются в виде колонок и специфических сокращений (например, Q для четверти) .
- MusicXML: Текущий индустриальный стандарт, созданный выпускником MIT Майклом Гудом (Michael Good) около 22 лет назад . Он впервые успешно решил проблему энгармонизма в широком масштабе.
Главный вызов современности: Около 10–15 лет назад возникла проблема «рефлоу» (reflowing) . Музыку теперь читают на iPad, смартфонах и мониторах разного размера. Нотация не может быть статичной картинкой (как PDF); она должна адаптироваться под размер экрана, менять количество тактов в строке и размер шрифта. По мнению профессора, сейчас идет глобальная дискуссия о создании формата «следующего поколения», который окончательно решит вопрос адаптивной верстки партитур .
🛠 ТЕХНИЧЕСКИЙ ТУТОРИАЛ (Music 21 & Python)
В рамках курса начинается работа с библиотекой music21.
Шаг 1: Импорт базовых компонентов
Для работы с высотой звука необходимо импортировать класс Pitch из модуля pitch.
from music21 import pitch
# Где pitch (строчными) — это модуль (папка)
# А Pitch (заглавными) — это класс внутри модуля
Шаг 2: Использование классов
В модуле pitch также содержатся полезные связанные классы, такие как Accidental (случайные знаки) .
Ограничения программирования:
- Запрещенные атрибуты: В ближайших заданиях запрещено использовать встроенный метод
transpose, так как студенты должны реализовать логику транспонирования самостоятельно . - Обработка ошибок: Профессор рекомендует всегда учитывать «крайние случаи» (corner cases), такие как пустые списки нот, чтобы избежать падения программы (crash) .