Наглядная база данных для анализа музыкальной гармонии
Добро пожаловать в интерфейс базы Harmony DB! Я планирую сделать её инструментом, помогающим изучать и исследовать теорию музыки, понимать движения гармонии, пользуясь базой данных, и узнавать, как могут развиваться аккордовые прогрессии.
В библиотеке тысячи песен и их аккордов, разработка идет. Сейчас база данных Harmony DB содержит информацию об аккордовых прогрессиях, встречающихся в песнях, и я пытаюсь делать здесь гармонический анализ. Этот проект позволяет исследовать базу данных и выполнять запросы к индексу Harmony DB.
Будущее видение Harmony DB состоит в том, чтобы иметь возможность обрабатывать запросы любой сложности, соответствующие любому виду информации, которую вы хотели бы запросить у базы данных.
Harmony DB - это проект с открытым исходным кодом, размещенный в Azure, и имеющий бесплатный и открытый API. Пожалуйста, свяжитесь со мной, если вы хотите использовать ее, или если у вас есть идеи о запросах, которые вы хотели бы выполнить, или о задачах, которые у вас могут возникнуть.
Доступные запросы
Вот типы запросов, которые реализованы в настоящее время:
✓ Поиск песен по последовательности аккордов →
Ищет песни, содержащих заданную последовательность аккордов. Результаты сортируются по покрытию или по рейтингу песни.
✓ Поиск песен по заголовку →
Ищет песни по части слов в названии или исполнителях.
✓ Посмотреть популярные аккордовые прогрессии →
Все песни были проанализированы и из них были извлечены циклы аккордовых прогрессий (повторяющиеся последовательности). Этот запрос показывает все прогрессии, от самых популярных.
Для циклов также подсчитывается статистика того, как часто цикл непрерывно следует сам за собой или как часто за ним следует другой цикл.
✓ Анализ тональностей →
В деталях показывает анализ тональностей песен и аккордовых прогрессий, включая связи, вероятности и веса. Удобно для уточнения и корректировки модели. Еще помогает понять, почему тональности определяются именно так, и позволяет рассматривать модель с детальными фильтрами.
Больше запросов и визуализаций скоро
Вот некоторые идеи и планы на будущее. Пожалуйста, напишите мне, если у вас есть вопросы, которые вы добавили бы в этот список.
- Анализ того, как могут развиваться разные аккордовые последовательности, подобный тому, как это делается в Hooktheory TheoryTab DB. Это позволит вам развернуть дерево вариантов продолжения прогрессии, с вероятностями и примерами песен.
- Выделение найденных последовательностей и повторяющихся циклов в песне. В РАЗРАБОТКЕ
- Анализ и статистика переводов из одной последовательности в другую. В РАЗРАБОТКЕ
- Статистика того, как часто цикл последовательности покрывает всю песню.
- Анализ взаимосвязи между циклами, как часто они встречаются вместе в одной песне (совместимость), и, может быть, выделение кластеров последовательностей, которые с большей вероятностью встречаются вместе. В РАЗРАБОТКЕ
- Статистика возможных дополнительных нот в аккордах в последовательностях (возможные 7 / 9 / 11 / 13, басовые ноты и т. д.) - и как они зависят от последовательности аккордов.
- Определение тональности - в какой тональности находится песня? В РАЗРАБОТКЕ
- Варианты замены аккордов в прогрессии и их вариации.
- Определение модуляций - например, поиск песен с модуляциями на 3 ступени выше, или насколько вероятно появление популярных последовательностей в песнях с модуляциями, или поиск песен с модуляциями у конкретного исполнителя, и т. д. В РАЗРАБОТКЕ
- Варианты модуляций - возможные переходы и их точные устройства, точки их соединения с основными последовательностями и т. д. В РАЗРАБОТКЕ
- Идеи создания бриджей на основе существующих бриджей в песнях с похожими аккордовыми последовательностями, популярности разных бриджей в разных жанрах и т. д.
- Гармонический анализ - определение и обозначение аккордовых функций в данном контексте, выяснение особенностей построения гармонии в конкретной песне.
- Отображение схем, показывающих, как и куда может выйти цикл аккордовой последовательности, с указанием вероятностей и возможностью углубления дальше.
- Отображение статистической популярности аккордовых прогрессий в конкретной песне.
- Вычисление и показ уникальности гармонических характеристик песен или отдельных аккордов в конкретном контексте, позволяя находить наиболее уникальные песни или аккорды.
- Поиск необычных гармоний, отклонений от лада, заимствованных аккордов и т. д.
- Какой аккорд можно было бы сыграть вместо этого в этой точке? Как можно изменить эту последовательность?
- Дополнение базы данных данными о жанрах, годах, странах, чтобы можно было включать при запросе соответствующие фильтры и видеть соответственную выдачу по запросам, делать группировку результатов и т. д.
- Работа с неизвестными характеристиками. Поиск и оценка красивых или необычных песен по неизвестным параметрам, попытка выделить эти параметры и специфику, разбор итоговых данных.
- Кластеризация настроений или тем песен на основе текстов с помощью OpenAI GPT, попытка найти взаимосвязи между настроениями и гармониями.
У вас есть другие идеи? Я буду рад услышать о них. Пожалуйста, оставляйте их в обсуждениях на GitHub или свяжитесь со мной одним из способов ниже.
Заметки о выпусках
Релиз 2, 17.07.2024
- Начата важная реализация индекса структур песен.
- Оптимизировано обнаружение циклов для будущих задач: теперь циклы минимальны, без повторяющихся аккордов внутри.
- Обнаружение тональностей. Пока это не так точно, как мне бы хотелось, но есть удобный фронтенд для отладки модели.
- Отображение ступеней аккордов прогрессий.
- Все прогрессии показаны в самой вероятной тональности, всегда начинаются с тоники (если есть).
Релиз 1, 26.06.2024
- Первый релиз.
- Поиск песен по аккордам.
- Поиск песен по названию или исполнителям.
- Просмотр популярных аккордовых прогрессий.
-
Просмотр песен с опциями:
- Выделение найденных прогрессий,
- Транспозиции,
- Предпочтение бемолей или диезов,
- Упрощение аккордов путем удаления 7, 9, басов, сусов, 6, 11, 13,
- Отображение обнаруженных циклов.
- Доступны английский и русский языки.
- Доступны постоянные ссылки.
- Трассировки API для разработчиков, желающих интегрироваться с API (пожалуйста, напишите мне, если хотите).
Контакты
Автор: Павел Жур
E-mail: completely.real@gmail.com
Телеграм: @pavel_zhur
GitHub: https://github.com/pavel-zhur/HarmonyDB