ng-music-sheet-workspace
v0.0.0
Published
> Librairie Angular pour le rendu, l'édition et la lecture audio synchronisée de partitions musicales multi-formats.
Readme
ng-music-sheet
Librairie Angular pour le rendu, l'édition et la lecture audio synchronisée de partitions musicales multi-formats.
✨ Vue d'ensemble
ng-music-sheet est une librairie Angular privée dédiée à la manipulation de partitions musicales. Elle vise à fournir un ensemble cohérent de composants et services pour :
- Afficher une partition à partir d'un fichier MusicXML
- Éditer interactivement les notes, mesures, voix
- Lire la partition en synchronisant un curseur audio avec l'affichage
- Supporter plusieurs formats : partition classique, batterie, tablature guitare/basse
⚠️ Projet à usage interne. L'API peut évoluer librement entre les versions tant que la version 1.0.0 n'a pas été atteinte.
Le projet livre :
ng-music-sheet— librairie Angular publishable (briques de rendu, édition, playback)- App
demo— éditeur de partition complet à la MuseScore, qui consomme la lib
🎯 Choix techniques principaux
| Domaine | Choix | Justification | | --------------- | ------------------------------------------------ | ---------------------------------------------------------------------------- | | Format I/O | MusicXML | Standard d'échange ouvert, bonne interop avec MuseScore/Finale/Sibelius | | Moteur de rendu | VexFlow direct | Contrôle bas niveau requis par l'édition fluide ; support natif batterie/tab | | Parser MusicXML | Maison, incrémental | Écrit nous-mêmes, on supporte ce qu'on supporte vraiment | | Édition | Modèle interne + re-render VexFlow + overlay SVG | Découplé du moteur de rendu | | Playback | Web Audio API | Synthèse simple, intégrée navigateur |
Voir ARCHITECTURE.md pour le détail.
🚀 Installation
🚧 Non publiée pour le moment — voir ROADMAP.md.
# (futur)
pnpm add ng-music-sheet🧪 Exemples minimaux (cibles)
Affichage seul
import { MusicSheetViewComponent } from 'ng-music-sheet';
@Component({
standalone: true,
imports: [MusicSheetViewComponent],
template: `<music-sheet-view [musicXml]="xml" />`,
})
export class MyComponent {
xml = '...'; // contenu MusicXML
}Édition
import { MusicSheetEditorComponent } from 'ng-music-sheet';
@Component({
standalone: true,
imports: [MusicSheetEditorComponent],
template: `
<music-sheet-editor
[(score)]="score"
(scoreChange)="onChange($event)"
/>
`,
})
export class MyComponent {
score = /* Score vide ou chargé depuis MusicXML */;
onChange(score: Score) { /* … */ }
}📚 Documentation
- VISION.md — pourquoi cette lib existe, ce qu'elle est et n'est pas
- ROADMAP.md — découpage en phases et jalons
- ARCHITECTURE.md — vue technique d'ensemble
- CHANGELOG.md — historique des versions
- docs/ — documentation détaillée (glossaire, modèle de données, ADR, specs…)
🛠️ Développement
Voir docs/DEVELOPMENT.md.
📄 Licence
Privée. Tous droits réservés.
