Fixed spacers do not function with vertical justification enabled

• Jan 21, 2021 - 22:43
Reported version
3.6
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
Yes
Project

1) Create score with multiple sections using page breaks
2) Enable vertical justification (per v3.6)
3) Note that pages with fewer staves are spread out across the entire page, rather than kept together at top with similar spacing to earlier pages.
4) try using a fixed spacer, but default height is less than the stave spacing and cannot be used to reduce the spacing.

See pp20 & 22 in sample

I have tried varying "Factor distance between systems" down to ~1.1 but that ends up negating all the justification benefits on other pages.


Comments

Title Vertical Justification before page break Fixed spacers ignored with vertical Justification before page break
Frequency Few Once
Regression No Yes
Title Fixed spacers ignored with vertical Justification before page break Fixed spacers ignored with vertical Justification before page/section break
Title Fixed spacers ignored with vertical Justification before page/section break Vertical Justification before page break
Frequency Once Few
Regression Yes No
Status active needs info

This is exactly the point of the staff spreading system - to avoid the unprofessional-looking ragged bottom margins that were unfortunately common and hard to work around before. But it's true there can be special cases where for whatever reason you want this disbled or at least modified. Sounds like for whatever reason you don't want the systems spread as far as they are on the mostly empty pages like 20? I would recommend asking for assistance on the Support forum to find the optimum settings for your unique requirements.

Well, if the spacer doesn't repsond that much may indeed be a bug. The rest still sounds like working as designed by just needing more experimentation to yield the specific results you want. So hopefully there will be more discussion of that in the forum. Can you restate the title here in a way that only addresses the actual bug involve spaciers, and write up a new set of steps that gets straight to that point?

Frequency Few Once
Regression No Yes
Status needs info active

If a fixed spacers gets ignored that is a bug and a regression

Whether the last page of a section really needs that system justification is another question and more a design issue, and should get filed separately. But fixed spacers should be made possible as a workaround at least

Title Vertical Justification before page break cannot be fixed with spacers Vertical Justification before page/section break cannot be fixed with spacers
Title Vertical Justification before page/section break cannot be fixed with spacers Fixed spacers do not function with staff spreadin genable
Regression Yes No
Priority P1 - High

Indeed, fixed spacers don't work correctly with vertical justification enabled. The relationship between spacer length and staff distance is not fixed as it is supposed to be. And while you can increase distance, you cannot decrease it, at least not more so than the original distance.

To reproduce from scratch:

1) default empty score
2) select from measures 13 to end, leaving you with only three systems
3) add fixed spacer to measure 1
4) adjust to bring second system closer to the first

Result: immediately on adding the spacer, distance increases, not sure why. I guess it's taking that as the new system height and starting the spread from there? But more importantly, reducing the spacer length only brings the systems back to their original position, it doesn't close it no matter how short you make the spacer.

This is only an issue if you use the new vertical justification facility that didn't exist before, so in that sense it's not technically a regression. But since this is on by default, in practice, it basically is - it is going to appear that fixed spacers are just broken.

Title Fixed spacers do not function with staff spreadin genable Fixed spacers do not function with vertical justification enabled
Workaround Yes No

True, so not really a workaround to the problem as described, just a way to get fixed spacers working. Like, you have a choice, either have justification, or fixed spacers.

I'm looking, if it's a simple fix I can do, otherwise we can hope for Niek to deal with it.

Status PR created fixed

Fixed in branch 3.x, commit 0b86e1bdea

_Fix #316025 - Fixed spacers do not function with vertical justification enabled

When a system contains a fixed spacer, the gap above that system will become
a gap with a fixed gap and no extra space will be added to this gap.

To implement this, System::minDistance() will now, instead of just saving the
fixed distance, save the fixed spacer instead. distributeStaves() will use this
to find out whether a system has a fixed spacer or not._

Status closed active

This seems (still? again?) active in 3.6.2. Both between staves within a system and between system - fixed spacer will not reduce space beyond the minimum. At least, not always. I'm not sure of the specific trigger right now, but it's reprocible easily enough.

1) default empty score
2) add fixed spacer down to second measure of second system
3) reduce height

Result: no effect

Works for the first measure of the system, though. So I might say, it works on the first measure of any system, but unfortunately that's not the case, either. Try a new score, grand staff template. Add spacer to first measure of top staff of second system and reduce height. Nothing happens there either.

All is fine with vertical justification off.

Maybe this is already fixed in nightlies, but I think it's important to log this as a current 3.6.2 behavior to help us gauge the overall status of that release.

Nonetheless, I can verify it does currently seem fixed in nightlies. So the only problem here was the premature marking of it being fixed for 3.6.1, or if it truly was fixed for 3.6.1 then broken again for 3.6.2, the failure to have reopened the issue and cleared the "fix version" field.

Anyhow, I just want to make sure this issue shows if you do a search for issues that were reported against >= 3.6.0 but were not fixed in 3.6.1 or 3.6.2.

In fact there where 2 issues with fixed spacers in combination with vertical staff spread which are solve in two different PR's because I didn't realize a fixed spacer between staves is different from a fixed spacers between the last staff and the bottom margin.
The first PR ended up in a release the second not (yet?).
Also, I'm not sure this a regression since it is an issue in vertical staff spread only, which is introduced in 3.6. It couldn't work correctly before since the feature didn't exist by then. This is a bug in the implementation but a regression? (Unless I understand "regression" wrongly ;-))

Fix version
4.0.0