Инструменты анализа музыки: кодирование и голосоведение 0:00
На 15-м занятии курса MIT OpenCourseWare Майкл Катберт подводит итоги работы с классами эквивалентности и обсуждает новые концепции: от программной обработки музыкальных данных до принципов голосоведения. В дискуссии также принял участие приглашенный эксперт Майкл Гуд, создатель стандарта MusicXML, который поделился опытом разработки музыкальных стандартов и карьеры на стыке музыки и технологий.
🧩 Итоги по классам эквивалентности 0:27
Майкл Катберт напоминает, что понимание того, когда две ноты считаются «одинаковыми», критически важно для анализа. Студенты выделили основные категории:
- Октавная эквивалентность.
- Транспозиция.
- Инверсия.
- Эквивалентность энгармонического написания (Spelling).
- Инструментальная эквивалентность.
- Длительность ноты.
Профессор обратил внимание на частую ошибку в программах студентов: неправильную обработку граничных нот, таких как «си-диез» (B#), которые звучат как «до» (C), но требуют корректного учета октав при вычислении интервалов.
🎼 Корпуса данных и роль MusicXML 8:35
Студенты представили найденные ими музыкальные электронные базы данных:
- Musipedia — база данных с функцией поиска по музыкальным фрагментам.
- Ultimate Guitar — ресурс, эволюционировавший от простых ASCII-табулатур до продвинутых форматов.
- Video Game Music Database — обширный репозиторий MIDI-файлов, популярных из-за малого веса и стандарта.
- Jazzomat — база джазовых соло с транскрипциями и CSV-файлами.
Приглашенный гость Майкл Гуд отметил, что для создания жизнеспособного стандарта представления музыки (каким стал MusicXML) необходимо наличие сообщества пользователей и поддержка со стороны ключевых приложений (например, Finale или Sibelius). По мнению Гуда, сейчас для разработчиков важнее «решать крутые задачи» на базе существующих инструментов, а не изобретать новые форматы с нуля.
🎶 Голосоведение и алгоритмы 34:38
Голосоведение рассматривает одновременное движение нескольких музыкальных партий. Катберт подчеркивает, что программный анализ голосоведения сложен из-за необходимости постоянно переключаться между вертикальным срезом (гармонией) и горизонтальным (мелодической линией).
В качестве примера он приводит «строгий контрапункт» (species counterpoint):
- Используются правила, ограничивающие как горизонтальные (мелодические) интервалы, так и вертикальные (гармонические).
- Запрещенные приемы включают параллельные квинты и неконсонансные интервалы (например, септимы).
- Задача для компьютера — «дописать» второй голос (контрапункт) к заданному cantus firmus (фиксированной мелодии).
💻 Технический практикум: библиотека music21 41:46
Вторая часть занятия посвящена работе с модулем interval в библиотеке music21. Основные команды и подходы:
- Создание интервалов:
- Создание через строку:
interval.Interval('P5'). - Создание из двух нот:
interval.Interval(pitch1, pitch2).
- Создание через строку:
- Свойства интервалов:
.name— имя..semitones— количество полутонов..simpleName— упрощенное имя для составных интервалов.
- Транспозиция:
- Метод
transposePitch(interval, inPlace=True)позволяет изменять высоту ноты. - Важно помнить, что транспозиция «на месте» меняет объект.
- Метод
- Специфика music21:
- Библиотека учитывает музыкальную теорию: например, уменьшенная септима считается диссонансом, несмотря на то, что звучит как большая секста.
- Использование целых чисел (например,
4) для создания интервалов позволяет программе «догадываться» о диатонике, если контекст не задан жестко.