Stave distance widens if there is a cross-arpeggio

• Sep 8, 2018 - 02:13
Reported version
3.0
Priority
P1 - High
Type
Functional
Frequency
Many
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project
  1. Open attached score (produced in 2.3.2).
  2. Click on note.
  3. Move up or down.

Result: The distance between the staves widens.
Stave distance widens if there is cross-arpeggio.png

Notes:

Any change will continue to widen it (e.g. repeating step 3; remove arpeggio and undo).
Also reproducible in a 3.0 score.

Using MuseScore 3.0 Nightly b1c66ae - Mac 10.11.6.


Comments

Regression No
Workaround No

I can confirm this is still happening in the latest nightly build. You also do not have to open an score made in an older version for this bug to happen.

Status closed open issues

I'm reopening this because the issue isn't really fixed in 3.0.5, and while it's different in master, there are still issues.

First, in 3.0.5, everything seems OK at first, but then the staves widen again on the first full relayout (or save/reload). In master, this doesn't happen, but the arpeggio actually fails to participate in autoplace at all - even when note extended cross-staff, n arpeggio that goes below the staff will collide with dynamics etc.

I guess the intent of the original fix here was a bit a of hack where we pretend the arpeggio has 0 height when calculating the shape for the chord, segment, and/or skyline, but it's still getting calculated as the actual height in other places at least in 3.0.5, so the timing of this is off. And in master, it's preventing autoplace from working at all.

I'm not convinced any of this is worth trying to fix in the way the original fix was trying to. Instead, I propose we do one of two things:

1) Require the user to disable autoplace when extending an arpeggio cross-staff.

or

2) Ignore the user adjustment to the height in calculating the shape for the arpeggio. Thus autoplace would still work with respect to the unadjusted portion of the arpeggio.