Chord Symbols > Maximum Shift Above is weird if measure has rhythm slashes and rests
Reported version
3.x-dev
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
No
Project
Open attached MSCZ with MuseScore 3.5 RC.
MSCZ is a default template with Style > Chord Symbols > Maximum Shift Above set to 7.
Click on the last measure of the first system
Observe weirdness.
Video: https://www.youtube.com/watch?v=TONWuQodE0o&feature=youtu.be
Attachment | Size |
---|---|
Quirky Chord Alignment Behavior.mscz | 6.74 KB |
Fix version
3.5.0
Comments
Playing around with this a little, I am inclined to think the issue isn't so much with the alignment code per see as it is with the click-a-rest code - not correctly triggering the necessary layout or something like that. I remember other issues we had earlier with this. I am investigating. I don't really know the alignment code but can't really see how this particular issue could be caused by anything going wrong there specifically.
Indeed, it seems the alignment code itself is fine, it just isn't being called when we perform a selection, and if there is a chord symbol attached to a rest, it will get laid out without consideration to the alignment facility at all and thus will fall to its default position.
So, simple test case:
1) chord symbol above an empty measure
2) chord symbol above a measure containing a note high above the staff
3) set the maximum shift above to make sure the first chord is moved up
4) click the rest in the empty measure
Same thing will happen.
We know the cause; fix is under investigation.
It's actually not even necessary to use chord alignment at all to see the effect of this. Just have a note in voice 1 way above the staff, a rest in voice 2 on that same beat. Attach a chord symbol to the note - autoplace will automatically move it up to avoid the collision (make sure the note is high enough for this to be necessary). Now, click the rest, and the chord jumps down and collides with the note.
https://github.com/musescore/MuseScore/pull/6350
Fixed in branch 3.x, commit 084770c4cd
_Fix #307946 Fix #307945 - Strange behavior with chord alignment.
Harmony::calculateBoundingRect() no longer sets the new position of the Harmony but returns it.
Harmony::layout1() ignores the the position while Harmony::layout() will use to set the position of the
Harmony._
Fixed in branch 3.x, commit 97b80bc604
_Merge pull request #6350 from njvdberg/issue-307946-slashes-and-rests
Fix #307946 Fix #307945 - Strange behavior with chord alignment._
Automatically closed -- issue fixed for 2 weeks with no activity.