additional flags appearing on cross-staff beams after staffs are hidden

• Feb 22, 2021 - 03:09
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
No
Workaround
Yes
Project

1) Select m. 70.
2) Go to Staff/Part Properties.
3) After Hide When Empty, select Always.
4) Force a page break after m. 73.
5. mm. 70 and 71 now appear to be 32nd notes rather than 16th notes. Playback is unaffected.

Attachment Size
Transfiguration.mscz 36.3 KB

Comments

What's weird is the other known issues involve beams not being drawn. Here it appear it's too many beams being drawn. I kind of think it's really about the beam being drawn twice at slightly different locations, perhaps due to autoplace or the vertical justification algorithm needing to adjust staff distance. I note I can't reproduce this particular aspect of the issue with vertical justification off, although it's also hard to recreate the conditions exactly in that case. Setting both min staff distance and grad staff distance to 3.5 sp gets me approximately the same layout, though.

Some versions of these issues predate 3.6, though, so it's not just about that, I know. Still, the extra space that is always added by autoplace happens at more or less the same point in the layout as extra space added for vertical justification. Ideally this would be before cross-staff beams are finalized, but these issue show me this is obviously not the case - or that the beam layout is somehow missing some aspect of this. Looking at the code for collectPage(), it seems things are in the right order with respect to the call to layoutPage vs Beam::layout(), and unfortunately the glitchiness of this behavior makes it kind of hard to trace in a debugger, but I assume somehow this is where things go wrong.