Breath mark not handled right in MIDI export
I’ve got a score in which I’m adding one of the breath marks ❜ that are supposed to insert extra time (as opposed to the ✓ which steal time). I set it to pause for 0.16 seconds in the inspector. Playback works, and the pause is audible.
To stretch over the pause a little, I’m prolonging the notes before (offtime set to 1080 (quarter) or 1040 (half)). This also plays back well, but now I get a MIDI collision because the prolonged note is supposedly “still playing” while the next note (the one after the breath mark, with the same pitch) is starting. This made me wonder whether the breath mark is not handled right in MIDI?
Looking at midicsv output (which doesn’t differ significantly between 3.2.3 and 3.6.2 so this applies to both), fermata and breath marks are realised by changes in tempo. However, this isn’t right for two reasons:
- Raising the offtime into the breath mark-caused pause won’t work like this
- Re-importing the generated MIDI causes ties where a re-articulation should be
Look at the attached score; m.26 in stave 4 clearly has the end of a note. Export to MIDI, open the MIDI file in MuseScore: m.31 (renumbered after expanding repeats) now ties through into a new virtual m.32 which did not exist before, and stave 4 ties through into m.33 instead of rearticulating what was m.27 in the original score.
When removing line 3786 «len»1080«/len» so the off-time is 1000, there is re-articulation but the note doesn’t tie over into the virtual m.32 at all.
I’m not sure if exporting breath mark-generated pauses as virtual extra measures with changed tempo is the right thing to do, but if it is, it isn’t implemented correctly wrt. off-times. (Note also that I have the fermata set to stretch 2.0 and the off-times to 768 for the notes in it; I’m not sure this is done right in the MIDI export either, it looks (in the re-import) as if they just play the normal note with their normal offtimes at lower speed. But that’s… acceptable, even if still a sign that off-times are not handled correctly.)