scrime-u-bordeaux / web-midifile-performer

a web version of the midifile performer software
0 stars 0 forks source link

Expand MusicXML parser #73

Closed NyuBlara closed 2 weeks ago

NyuBlara commented 7 months ago

The parser currently covers a small subset of possible events. If some files are found where this is insufficient, it might be necessary to expand its capabilities.

List of features to implement (they will be striked through as PRs take care of them) :

NyuBlara commented 6 months ago

Repeat signs are far less trivial than they might first appear. This is because of our need to biject graphical notes in OSMD with set notes : the sheet only has one graphical note copy for each note of a repeated section ! Therefore we would have to either :

A. Give up on bijection and declare that one graphical note may correspond to multiple instances in the noteSequence : this would be problematic because where exactly should the index jump to when the note is clicked ? B. Implement repeats through our own looping system by introducing "meta" events in the pseudo-midi that the MFP.js would not translate into events for the lib, but instead keep in the app memory to dynamically set the repeat flags as needed. The future repeat positions would then manifest as "phantom flags" on the scroll bar. I like this idea better, but it would be very difficult to convey to users !

NyuBlara commented 1 month ago

Articulation dynamics and basic word-based tempo were implemented in May. Appoggiature have been in progress in May and October.

Word-based tempo marking requires improvements, because something like "Adagio un poco andante" will not receive an associated tempo ; we should try inclusion in the keywords, not just equality.

NyuBlara commented 3 weeks ago

This issue shall be closed with the eponymous pull request. More specialized issues will be created for future ventures into parser expansion, clarifying the workflow.