5.6 KiB
NAMING.md - Convention des noms de partitions
Référence du format de fichiers/répertoires des partitions (legacy/Scores/).
Cette convention a été normalisée une fois par scripts/convert_final_v2.js
(6388 fichiers convertis). Ne pas renommer à la main : le backend
(api/lib/ScoreScanner.php) et le frontend en dépendent.
Arborescence
legacy/Scores/<NUM>/<PIECE>/<INSTRUMENT>/<VERSION>/<FICHIER>
legacy/Scores/<NUM>/score.ini
| Segment | Rôle | Exemples |
|---|---|---|
NUM |
identifiant du morceau, zéro-paddé sur 3 chiffres | 102, 390, 072, 098 |
PIECE |
numéro de pièce (mouvement) | 1 (morceau simple), 1..5 (medley type 390) |
INSTRUMENT |
trigramme de l'instrument | cla, sax, sup… (voir table) |
VERSION |
répertoire de version | 1 = version principale, 2, 3… = alternatives |
FICHIER |
nom du PDF (grammaire ci-dessous) | clarinette-sib-1.pdf |
VERSIONest un répertoire, pas un token du nom de fichier. Le dossier1/est la version principale ;2/+ sont des versions alternatives du même morceau (ex. score210:cla/1/etcla/2/).
Grammaire du nom de fichier
{instrument}[-{tonalité}][-{variante}]-{partie}[_{partie_combinée}][_{clef}][_alt{N}].pdf
- Séparateur de champs :
- - Séparateur interne aux noms composés et aux suffixes :
_ - Multi-instrument (deux instruments sur la même partition) :
+
Exemples réels
| Fichier | Sens |
|---|---|
clarinette-sib-1.pdf |
clarinette en Si♭, partie 1 |
clarinette_alto-mib-1.pdf |
clarinette alto en Mi♭, partie 1 (_ = nom composé) |
sax_alto-mib-2.pdf |
sax alto en Mi♭, partie 2 |
cor-fa-1_2.pdf |
cor en Fa, parties 1 et 2 combinées |
baryton-clefa-1.pdf |
baryton, clé de fa, partie 1 (pas de tonalité) |
euphonium-sib-clesol-1.pdf |
euphonium Si♭, clé de sol, partie 1 |
cornet-sib-solo-1.pdf |
variante solo |
baryton-sib-default_cor-2.pdf |
substitution default_cor |
conducteur-1_alt1.pdf |
version alternative alt1 |
basse-sib-1+contrebasse-sib-1.pdf |
deux instruments sur la même partition |
saxophone-mib-1+baryton-mib-1.pdf |
idem (sax + baryton) |
glockenspiel-1+xylophone-1.pdf |
percussion multiple |
percussion-1+gong-1+cymbale-1+triangle-1.pdf |
3 + possibles |
Ordre réel des champs d'un nom simple :
instrument, puistonalité,variante,clef, et enfinpartie(ex.euphonium-sib-clesol-1.pdf,cornet-sib-solo-1.pdf,baryton-clefa-1.pdf).
Parties combinées (sup / par)
Les dossiers sup/ et par/ regroupent des partitions combinées : le nom du
fichier reprend les instruments réels reliés par +, pas le code du dossier.
Exemples réels : 331/1/sup/1/contrebasse-1+clarinette-1.pdf,
295/1/sup/1/euphonium-sib-clefa-1+baryton-sib-clefa-1.pdf,
346/1/par/1/partie-sib-4.pdf.
À l'upload (admin), un éditeur « Parties combinées » apparaît pour sup/par :
on ajoute un ou plusieurs instruments, chacun avec tonalité / clé / partie ; le
nom est alors construit automatiquement, relié par +
(ex. contrebasse-sib-clefa-1+baryton-sib-clefa-1.pdf).
Tonalités
sib (Si♭), mib (Mi♭), fa (Fa), ut (Do — do s'écrit ut dans les
fichiers), sol, re, mi, si, reb, dob, solb, lab.
Clefs
clesol (clé de sol), clefa (clé de fa).
Variantes / suffixes
solo: partie solo.default_<instr>: instrument de substitution (ex.default_cor)._altN: version alternative dans un même dossier (ex._alt1,_alt2).
Codes instruments
| Code | Instrument | Code | Instrument |
|---|---|---|---|
dir |
Direction | trp |
Trompette |
pic |
Piccolo | trb |
Trombone |
flu |
Flûte | tub |
Tuba |
cla |
Clarinette | htb |
Hautbois |
clb |
Clarinette basse | bas |
Basson |
sax |
Saxophone alto | per |
Percussions |
sat |
Saxophone ténor | crn |
Cornet |
sab |
Saxophone baryton | eup |
Euphonium |
coa |
Cor anglais | har |
Harpe |
cba |
Contrebasse | pia |
Piano |
cor |
Cor | sup / par |
Parties combinées |
score.ini
[info]
name = La part d'Euterpe
compositor = Michaël CUVILLON
ressource = https://... ; optionnel (lien externe)
[pieces]
count = 1
; pour un medley (count = N) :
; 1 = La Part d Euterpe
; 2 = Calliope s Songs
[pieces] count= nombre de pièces. Les clés1..Ndonnent leur nom.ressource: lien externe optionnel (YouTube, éditeur…).
Points d'attention (code)
+dans les chemins : un+littéral dans une URL est valide en path, mais PHPurldecode()le transforme en espace. Le download doit donc :- encoder chaque segment côté frontend (
encodePathdanspartitions/src/lib/api.ts) ; - utiliser
rawurldecode()(jamaisurldecode()) côtéapi/index.php. Sinon les 167 fichiers multi-instruments (a+b.pdf) renvoient 403.
- encoder chaque segment côté frontend (
- Parsing :
ScoreScanner::parseFilename()détecte tonalité, clef, variante et partie. Les motifs doivent être ancrés (_sib(?:_|$)) et du plus long au plus court (sibemolavantsib) pour ne pas mal découper les noms. - Le matcher multi-instruments utilise
+(et non_et_, supprimé par la conversion).
Conversion (one-off)
scripts/convert_final_v2.js est le convertisseur historique utilisé pour
normaliser l'ensemble du catalogue. Il ne doit plus être nécessaire pour de
nouveaux fichiers (uploader via l'admin respecte la convention).
node scripts/convert_final_v2.js /chemin/vers/Scores confirm