Changing note duration does not change Lyrics tick count
Ubuntu 14.04, GIT commit: 63c2174
The actual effects of this depend on which code you are looking at, and I'm looking at not-yet-commited code, so maybe submitting this is premature, but I wanted to register it. Will investigate more later if someone else doesn't first.
1) enter three quarter notes
2) enter lyric one first note, then press underscore twice, and another lyric on last note
3) now click first note and press "." to change its duration
Result: although the note is now a dotted quarter note, if you go to Debugger and check the lyric, you'll see its duration is still 480. One way or another, this is likely to cause layout issues down the line.
Comments
It's worse than than. Not just any change to the note that has the lyric, but any change that results in the elimination of the segment on which the lyric previously ended is problematic. Again, the specific symptoms may depend on which commit you are looking at. But you can get the extendeder to be too long or too short.
This one has been around a while (probably since 1.X), and may be responsible for a number of melisma glitches that I've seen over the years. We were detecting the case where there was no segment at the endTick location, but not doing anything about it, so we were left with melisma lines with "stale" layout information.
I think that rather than try to find and fix lyric tick counts on every score edit, the simple fix appears to be to adjust the lyric tick count while laying out the melisma. In other words, right where we detect there is no segment at the endTick location, just fix the lyric's tick count right there. I have this implemented, just doing some more testing. It's the same passage of code where I am dealing with #44271: Melisma extends to notes in other voices and the incorporation of manual note adjustments into the melisma layout.
https://github.com/musescore/MuseScore/pull/1638
The PR was merged years ago...
Automatically closed -- issue fixed for 2 weeks with no activity.