scrime-u-bordeaux / web-midifile-performer

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

Support for crescendo and diminuendo #112

Open NyuBlara opened 3 weeks ago

NyuBlara commented 3 weeks ago

Whether written in words or wedges, these are essential elements of musical notation, but pose several implementation challenges :

  1. They are staff-relevant, not part-relevant. This means that there may be wedges that apply only after a backup, or worse yet, to a staff that belongs to a different part. Thus, they would have to be totaled at the end of a measure, and require cross-part interactions if they were written for a staff that does not belong to the right part.
  2. Word-based cresc./dim. have no determined duration, and are in fact ignored by MS and the like.
  3. Wedge _stop_s, when orphaned, may require an inversion with their start, as seen in measure 10 of Debussy's Passepied.
  4. Multiple wedges of opposing directions and distinct number properties may in fact overlap without error, which is tricky to handle.
  5. Most importantly : there is no determined target value for a cresc/dim gradient. When an immediately adjacent dynamics notation exists, this is no problem ; but it becomes impossible to sort out when there are not any. MS apparently just adds a constant value with no cap in that (very common) case.