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
INSERTcompleti per accordi fino alla tredicesima. - Campi
created_at/updated_atautomatici. - 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