Chord Note Music Database
Una completa biblioteca MySQL para la escala cromática, bilingüe (italiano & inglés), con utilidades de exportación.
Descripción del Proyecto
Chord Note Music Database es un esquema MySQL diseñado para catalogar las definiciones de acordes para cada nota de la escala cromática: naturales, sostenidos y bemoles. Cada nota tiene su propia tabla que almacena nombres de acordes e intervalos en italiano e inglés.
Creado y mantenido por Luca Bocaletto, ofrece:
- Referencia bilingüe: nombres e intervalos en italiano e inglés.
- Todas las extensiones comunes hasta la 13ª (tríadas, sextas, séptimas, novenas, oncenas, trecenas).
- Tablas listas para producción con marcas de tiempo y restricciones únicas.
- Utilidades sin fricciones para exportar tu volcado SQL a un único archivo JSON.
Características Principales
Esquema Uniforme
Todas las tablas (NoteDO
, NoteREdiesis
, NoteSIb
, etc.) comparten este DDL:
CREATE TABLE NoteXY (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
note_ita VARCHAR(3) NOT NULL COMMENT 'ej. Do♯',
chord_ita VARCHAR(50) NOT NULL COMMENT 'ej. Do♯ Maggiore 7',
chord_note_ita VARCHAR(100) NOT NULL COMMENT 'ej. Do♯-Mi-Sol♯-Si',
note_eng VARCHAR(2) NOT NULL COMMENT 'ej. C#',
chord_eng VARCHAR(20) NOT NULL COMMENT 'ej. C#Maj7',
chord_note_eng VARCHAR(100) NOT NULL COMMENT 'ej. 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)
);
Cobertura Completa
- 12 notas cromáticas + equivalentes sostenidos/bemoles.
- Scripts
INSERT
completos para acordes hasta la 13ª. - Campos
created_at
/updated_at
automáticos. - Exportación a JSON para consumo web o móvil.
Instalación y Uso
- Clona el repositorio:
git clone https://github.com/bocaletto-luca/Chords-Note-Music.git
- Crea y selecciona la base de datos:
CREATE DATABASE ChordNoteMusic; USE ChordNoteMusic;
- Importa el esquema y los datos:
mysql -u <usuario> -p ChordNoteMusic < file.sql
- Ejemplo de consulta:
SELECT * FROM NoteRE WHERE chord_eng LIKE 'D%9%';
Utilidades de Exportación
Convierte file.sql
en un único chords.json
con dos métodos:
-
Bash + Python
sql_to_json.sh
(requiere clientemysql
ypython3
)chmod +x sql_to_json.sh ./sql_to_json.sh # → genera chords.json
-
Python puro
sql_to_json.py
(sin servidor DB)# opcional: pip install sqlparse python3 sql_to_json.py file.sql [output.json] # → por defecto: chords.json