🎹 Основы Music21: автоматизированный анализ музыки 0:10
Для тех, кто изучает музыку с помощью компьютерных технологий, открываются широкие возможности автоматизации анализа и манипуляции партитурами. В рамках вводного занятия курса MIT OpenCourseWare преподаватель демонстрирует работу с библиотекой music21 — мощным инструментарием для работы с музыкальными данными, который позволяет исследователям не просто «слушать» файлы, а буквально разбирать их на составные элементы, анализировать структуру и создавать собственные алгоритмы обработки.
🛠 Настройка среды разработки 0:24
Для начала работы над проектом не обязательно устанавливать сложные программные пакеты локально. Преподаватель рекомендует использовать среду Google Colab, которая позволяет запускать Python-скрипты прямо в браузере.
Основные шаги подготовки:
- Загрузка среды: Переход по ссылке на проект в Google Colab.
- Установка компонентов: Скрипт автоматически скачивает последнюю версию music21, а также программное обеспечение MuseScore, необходимое для визуализации нотных станов.
- Запуск: В среде Jupyter notebook выполнение кода производится сочетанием клавиш
Shift + Enter.
🎼 Работа с партитурами: от Баха до кода 2:42
После настройки окружения важно правильно импортировать библиотеку music21. В учебных целях преподаватель использует короткий хорал И. С. Баха — BWV 66.6.
Практические операции с музыкальными данными:
- Загрузка: Использование функции
corpus.parse()для импорта партитуры из базы данных. - Визуализация: Метод
.show()позволяет вывести ноты на экран для визуального контроля. - Иерархическая структура: Важно понимать, что компьютер «видит» музыку не как набор звуков, а как иерархию:
Партитура -> Партии -> Такты -> Ноты. - Работа с индексами: В программировании принята индексация с нуля (например,
parts[0]для первой партии), в то время как музыкальные термины (например, номера тактов) сохраняют привычную нумерацию.
🔍 Аналитические инструменты и «тест на здравый смысл» 6:02
Библиотека позволяет проводить глубокий анализ, но преподаватель подчеркивает критическую важность «теста на здравый смысл» (smell test) — всегда нужно проверять, насколько результат, выданный машиной, соответствует действительности.
Ключевые функции анализа:
- Определение тональности: Метод
.analyze('key')позволяет автоматически вычислить тональность как целого произведения, так и его фрагментов. - Рекурсивный поиск: Так как ноты спрятаны внутри тактов, которые, в свою очередь, находятся внутри партий, используется метод
.recurse(). Он «открывает» все контейнеры, пока не доберется до уровня отдельных нот, что позволяет корректно подсчитать их общее количество (например, 165 нот в хорале Баха). - Chordify: Метод для преобразования полифонической партитуры в последовательность аккордов.
🎓 Методика обучения в MIT OpenCourseWare 9:49
Особенность данного курса заключается в постепенном «открытии» функционала. Многие встроенные алгоритмы music21 (например, определение тональности или создание аккордов) по умолчанию считаются «заблокированными».
Студенты должны сначала самостоятельно разработать алгоритм решения задачи в рамках задания. Только после этого им «разблокируют» профессиональную версию функции из библиотеки, чтобы они могли сравнить свой подход с эталонным. Преподаватель также настоятельно рекомендует онлайн-слушателям искать единомышленников для совместной работы, так как именно обмен опытом с другими студентами составляет существенную часть академического процесса в MIT.