Hairpin automatic placement fails on key signature change
⇒
Hairpin should not extend across barline when it contains its own dynamic marking
I have changed the title to reflect the actual problem. It's totally correct for the hairpin to cross the barline if a key signature is present, this is standard practice if the next dynamic marking is far from the barline. However, the code that does this should not do so if the hairpin contains its own dynamic marking. So, if you remove the "mf" in the example above, the behavior is correct, but the presence of the "f" should disable this.
Indeed. We don't look at what is increasing the distance (although I actually considered doing that). We just measure the distance. If it's over 3 sp to the next dynamic, we extend the hairpin. Eventually, that could be a style setting. But independently of that, we should fix it to not do that if the hairpin has its own attached dynamic.
Comments
I have changed the title to reflect the actual problem. It's totally correct for the hairpin to cross the barline if a key signature is present, this is standard practice if the next dynamic marking is far from the barline. However, the code that does this should not do so if the hairpin contains its own dynamic marking. So, if you remove the "mf" in the example above, the behavior is correct, but the presence of the "f" should disable this.
This also seems to happen on tempo changes as well, not just key signature changes.
seems to happen on tempo changes
This would be surprising. I suspect you mean time signature changes since they increase the distance between the barline and first note.
Indeed. We don't look at what is increasing the distance (although I actually considered doing that). We just measure the distance. If it's over 3 sp to the next dynamic, we extend the hairpin. Eventually, that could be a style setting. But independently of that, we should fix it to not do that if the hairpin has its own attached dynamic.
In reply to seems to happen on tempo… by mike320
Yes, sorry, I'm an idiot. :)
I did mean time signature changes.
https://github.com/musescore/MuseScore/pull/5075
Fixed in branch master, commit 0dd239feb2
fix #289703: don't extent hairpin if it has its own end dynamic
Fixed in branch master, commit 4d077eed0c
_Merge pull request #5075 from MarcSabatella/289703-hairpin-dynamic
fix #289703: don't extent hairpin if it has its own end dynamic_
Automatically closed -- issue fixed for 2 weeks with no activity.