Chord Note Music Database
Una libreria MySQL completa per la scala cromatica, bilingue (italiano & inglese), con utility di esportazione.
Panoramica del Progetto
Il Chord Note Music Database è uno schema MySQL progettato per catalogare le definizioni di accordi per ogni nota della scala cromatica—naturali, diesis e bemolle. Ogni nota ha una tabella dedicata che memorizza nome e intervalli dell’accordo in italiano e in inglese.
Creato e mantenuto da Luca Bocaletto, offre:
- Riferimento bilingue: nomi degli accordi e intervalli in italiano e in inglese.
- Tutte le estensioni comuni fino alla tredicesima (triadi, sestine, settime, none, undici, tredici).
- DDL pronto per la produzione, con timestamp e vincoli di unicità.
- Utility per esportare il dump SQL in un singolo file JSON.
Caratteristiche Principali
Schema Uniforme
Tutte le tabelle (NoteDO
, NoteREdiesis
, NoteSIb
, ecc.) seguono questo DDL:
CREATE TABLE NoteXY (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
note_ita VARCHAR(3) NOT NULL COMMENT 'es. Do♯',
chord_ita VARCHAR(50) NOT NULL COMMENT 'es. Do♯ Maggiore 7',
chord_note_ita VARCHAR(100) NOT NULL COMMENT 'es. Do♯-Mi-Sol♯-Si',
note_eng VARCHAR(2) NOT NULL COMMENT 'es. C#',
chord_eng VARCHAR(20) NOT NULL COMMENT 'es. C#Maj7',
chord_note_eng VARCHAR(100) NOT NULL COMMENT 'es. 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 note cromatiche + equivalenti diesis/bemolle.
- Script
INSERT
completi per accordi fino alla tredicesima. - Campi
created_at
/updated_at
automatici. - Esportazione in JSON per web o mobile.
Installazione & Utilizzo
- Clona il repository:
git clone https://github.com/bocaletto-luca/Chords-Note-Music.git
- Crea e seleziona il database:
CREATE DATABASE ChordNoteMusic; USE ChordNoteMusic;
- Importa schema e dati:
mysql -u <utente> -p ChordNoteMusic < file.sql
- Esempio di query:
SELECT * FROM NoteRE WHERE chord_eng LIKE 'D%9%';
Utility di Esportazione
Trasforma file.sql
in un unico chords.json
con due metodi:
-
Bash + Python
sql_to_json.sh
(richiede clientmysql
&python3
)chmod +x sql_to_json.sh ./sql_to_json.sh # → genera chords.json
-
Python puro
sql_to_json.py
(senza server DB)# facoltativo: pip install sqlparse python3 sql_to_json.py file.sql [output.json] # → default = chords.json