Chord Note Music Database
Полная MySQL-библиотека аккордов для всей хроматической гаммы — двуязычная (итальянский & английский) — с утилитами экспорта.
Обзор проекта
Chord Note Music Database — это продуманный MySQL-шаблон, который каталогизирует определения аккордов для каждой ноты хроматической гаммы (натуральные, диезы, бемоли). Каждая нота хранится в отдельной таблице с названиями и интервалами аккордов на итальянском и английском.
Проект разработан и поддерживается Luca Bocaletto и предлагает:
- Двуязычный справочник аккордов: названия и интервалы на итальянском и английском.
- Все распространённые расширения аккордов до 13-й (триады, сексты, септ-, нон-, ундец-, терцдец-аккорды).
- Готовые к продакшену таблицы с полями
created_at
/updated_at
и уникальными ключами. - Утилиты для простого экспорта SQL-дампа в единый JSON-файл.
Возможности
Единая схема таблиц
Все таблицы (NoteDO
, NoteREdiesis
, NoteSIb
и др.) используют следующий DDL:
CREATE TABLE NoteXY (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
note_ita VARCHAR(3) NOT NULL COMMENT 'напр. Do♯',
chord_ita VARCHAR(50) NOT NULL COMMENT 'напр. Do♯ Maggiore 7',
chord_note_ita VARCHAR(100) NOT NULL COMMENT 'напр. Do♯-Mi-Sol♯-Si',
note_eng VARCHAR(2) NOT NULL COMMENT 'напр. C#',
chord_eng VARCHAR(20) NOT NULL COMMENT 'напр. C#Maj7',
chord_note_eng VARCHAR(100) NOT NULL COMMENT 'напр. C#-E#-G#-B#',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_ita(note_ita, chord_ita),
UNIQUE KEY uk_eng(note_eng, chord_eng)
);
Полное покрытие данных
- 12 хроматических нот + их диезно-бемольные эквиваленты.
- Полные
INSERT
-скрипты для аккордов до 13-й. - Автоматические поля
created_at
/updated_at
. - Экспорт в JSON для веб и мобильных приложений.
Установка и использование
- Клонируйте репозиторий:
git clone https://github.com/bocaletto-luca/Chords-Note-Music.git
- Создайте и выберите базу данных:
CREATE DATABASE ChordNoteMusic; USE ChordNoteMusic;
- Импортируйте схему и данные:
mysql -u <user> -p ChordNoteMusic < file.sql
- Пример запроса:
SELECT * FROM NoteRE WHERE chord_eng LIKE 'D%9%';
Утилиты экспорта
Преобразуйте file.sql
в единый chords.json
двумя способами:
-
Bash + Python
sql_to_json.sh
(требуютсяmysql
-клиент иpython3
)chmod +x sql_to_json.sh ./sql_to_json.sh # → создаёт chords.json
-
Чистый Python
sql_to_json.py
(не нужен сервер БД)# опционально: pip install sqlparse python3 sql_to_json.py file.sql [output.json] # → по умолчанию output = chords.json