Can vertical staff spacing be frozen to prevent changes when adding items?

Is there a way to freeze vertical staff spacing to avoid unwanted spacing changes when adding an item?

I would like to know whether other Dorico users have experienced this behavior and whether anyone knows of a setting or workaround that prevents it.

I have researched this extensively, but so far it appears that Dorico provides no way to freeze the vertical staff spacing of a page. Because Dorico does not have a dedicated feedback portal where I can report this as a bug or feature request, I am posting it here in the hope that another user may know of a solution and that the Dorico development team will see it.

As demonstrated in the attached video, the page is initially spaced correctly and all systems are clearly readable. The moment I add an additional rehearsal mark at bar 31, Dorico recalculates the vertical spacing and causes the two systems above it to overlap, making the music unreadable.

This directly contradicts one of Dorico’s principal promises: its intelligent spacing is supposed to prevent musical elements from clashing. In this case, accommodating one rehearsal mark creates a much more serious collision between two complete systems.

The larger problem is not limited to rehearsal marks. Whenever text, rehearsal marks, or other items are added, Dorico may recalculate and change the vertical spacing. There appears to be no way to tell Dorico that the current vertical staff spacing should remain unchanged.

For anyone doing serious engraving work, the ability to freeze the vertical spacing of a page at any chosen point is an absolute necessity, not a luxury. Once the desired spacing has been established, the engraver should be able to add other items without Dorico automatically redistributing the systems.

Dorico needs a “Freeze Vertical Spacing” command for selected frames, systems, or pages. It should not reorganize the page without the user’s consent.

Does anyone know of a way to prevent these automatic vertical-spacing changes? I would also be interested to know whether other users can reproduce the system overlap shown in the video. I can provide the project file if needed.

You could turn Collision Avoidance off altogether by Layout Options > Vertical Spacing > Collision Avoidance > untick Automatically resolve…

This will turn all collision avoidance off though.

That’s definitely helpful. THANK YOU!
However, I wish there were a more sophisticated vertical-spacing lock—one that would let me lock selected systems in their current positions on the page. Do you know of any way to do that?

Dorico sometimes does miscalculate spacing (see post here), but in your case the complete overlap of the two systems is almost certainly caused by manual staff spacing before adding the rehearsal mark.

I’m not saying that there shouldn’t be a way to prevent this, but it’s not just Dorico’s algorithm gone haywire.

I don’t understand this statement. This is indeed entirely the result of Dorico’s algorithm. Regardless of whether I made manual spacing adjustments, adding a simple rehearsal mark should never create a catastrophic clash between two systems.

This ties in with the fairly long standing request to lock or freeze manual staff spacing. This is particularly relevant when inserting new pages in the middle of a score that has manual staff changes, but it’s a thorny problem, I’m sure. There is no current way to freeze your page formatting at the moment.

Perhaps it’s useful to know / be reminded that when you move anything in Dorico, you’re not moving it to an explicit new position: you’re determining an offset relative to its default position.

If that default position updates, the offset is now applied to the new position.

This is why we encourage people to adjust the default settings (minimum gaps, collision avoidance etc) to get the music as close as possible to the desired end look. That way, not only do you reduce the amount of manual intervention that you need in the first place, but generally the offsets are smaller.

We know that this is a different approach to how users might be familiar working if they come from other software, and that’s totally fine of course – it’s not a value judgement on either approach. However, given how Dorico works in its current form, the defaults-first-manual-adjustments-second workflow will probably be smoother in general, if you’re able to get familiar with the sorts of edits that are needed for the projects you typically work on.

I understand the offset-based approach, but it does not really address the issue I am raising. Finding one set of global defaults that produces the desired spacing in every layout and on every page is much more difficult—and often impossible—because the musical content and spacing requirements vary throughout a score.

That is precisely why manual adjustments are sometimes necessary. Once I have adjusted selected systems to achieve the desired result, I should be able to lock those systems in their current positions. A defaults-first workflow can reduce the need for manual intervention, but it cannot replace the ability to make and preserve local engraving decisions.

See what Lillie said. You defined manual spacing offsets; you added a rehearsal mark; Dorico recalculated its optimal spacing; Dorico re-applied your offsets, which caused a collision because the lower staff was now starting from a higher position.

I get that this is not desirable; my point is that this is the logical outcome of the steps that came before, not Dorico’s algorithm misfiring.

Alas - it’s a result of Dorico firing on all cylinders. I have found some relief for this mischief by getting a page between frame breaks, allowing me to work out my own mischief.

So the logical outcome after making a manual adjustment is that as soon as you add a rehearsal mark, the algorithm is designed to completely ruin the layout of the vertical spacing and mash the staves too close together, leaving too much space for a rehearsal mark. Is that what you are trying to say?

I’m not sure why you’re trying to pick a fight here. You told Dorico, I want to position this staff 2cm (or whatever) above the calculated position. Then you added a rehearsal mark, which changed the calculated position, and your 2cm offset was applied on top of that.

I get that this isn’t what you wanted, but it’s the logical outcome of how Dorico applies its rules and your offset.

If you hadn’t applied manual offsets—or if you clear them now—then the staves wouldn’t collide.

At worst, reset the manual adjustments and make them again, if necessary.

Manual adjustments are always the last thing after notation has been added. If you’ve added more notation, then you need to revise the page.

Late changes equals more work, but this is to benefit greater automation for instances where the notation is fixed.

I understand why Dorico works the way it does.

However, I sympathize with the OP’s plight. I wish more objects (such as rehearsal marks and playing techniques) had an “avoid collisions” option that you could turn off in the properties panel.

I may be mistaken, but I believe that @Thomas_Gunther’s point is that making a seemingly minute change (in this case adding a rehearsal mark) causes a lot of rework when one would generally not expect it given a perceived minimal impact on the score. I tend to agree with him. I can also envision situations where one would add rehearsal marks AFTER having engraved a project because of real world player/conductor input.

And maybe it’s not so much about freezing a layout once we are happy with it but rather allowing rehearsal marks to float on top of what is already in place even as they are attached to a specific time (aka bar number) without causing a change in layout. A rehearsal mark does not change the musical layout, just Dorico’s perceived layout requirements. Just a thought…

That would be my hope for a feature request as well! :grin: Or at least +/- offsets to the bounding boxes (not an easy ask, I’m sure.) Of course, that would require intervention each time other manual changes impacted those elements – as I’m sure you know! (Just stating the obvious for anyone who might not realize it!)

Anyway, it’s always best to set all the many vertical spacing options to what works best for one’s project before making any absolutely necessary manual adjustments. To do otherwise forces the software into a “passive-aggressive” relationship with the user! (“You think you know better? Go ahead, you do it!”) :scream: :wink:

Sometimes, we do know better (either perspective!)…

:joy:

Jesper

Thank you to everyone who shared their thoughts on this problem. I posted this not to turn it into a discussion about how impressive or flawed Dorico’s spacing algorithm is, but to look for solutions and to make the Dorico team aware that there is a problem.

With your kind help, I have now found a useful temporary workaround. When “Automatically resolve collisions between adjacent staves and systems” is turned off, adding rehearsal marks, text, or other items no longer changes the vertical positions of the staves and systems. Thankfully, those positions also remain unchanged after turning the option back on.

This solves most of the problem. However, there should be a quick way to toggle this setting on and off—ideally through an assignable key command. That would allow us to use Dorico’s automatic collision avoidance when it is helpful and quickly disable it whenever we want to preserve the existing vertical layout.

At present, repeatedly opening Layout Options and navigating to Vertical Spacing → Collision Avoidance is unnecessarily cumbersome. A direct toggle would provide a practical solution to most of the spacing issues I described.

You can use the Jump bar.

Jesper