I’ve had this issue in maybe a dozen different projects…
I notice that some lower ledger notes in the last system on a frame hang below the bottom of a frame. To fix it, I first remove any System Breaks and Frame Breaks in this Layout, then increase the Music Frame Margin bottom.
Expected Result: Dorico should move the overhanging last system to the next frame.
Actual Result: Dorico corrects the overhang by squeezing all systems in that frame vertically. Systems are closer than they should be, maybe even with collisions. Dorico acknowledges this in Engrave mode by indicating a page fill of greater than 100% in a red rectangle at the bottom left.
My workaround: Manually insert a Frame Break Is there a way to make Dorico work as expected in this situation?
Note: I see this in the normal project wherein each page has only one Music Frame, so if you tolerate technical in-correctness you could substitute “page” wherever I wrote “frame”.
Thank you, @k_b . Yes, I had tried Reset Layoutafter increasing the Music Frame bottom margin. Upon your suggestion, I just now reverted and tried Reset Layoutbefore increasing the Music Frame bottom margin. Neither way helped.
I believe I remember being told that Reset Layout affects only note spacing, not vertical spacing. So this is expected.
Reset Layout exists for all kind of manual adjustments and the different ones are independent from each other.
In Engrave Menu, you’ll find Reset Layout for Staff Spacing (i.e. when you manually move the staves and the handles turn red), Note Spacing (horizontal adjustments with the handles too), or Lyric Offsets (when you move the lyrics vertically).
But in the left column, the button Reset Layout removes all system/frame breaks.
Thank you for that explanation, @charles_piano . I did not know there were three Reset Layouts, plus a combo.
But none of these Resets, performed either before or after changing the Music Frame Margins, cause Dorico to automatically move the last system to the next frame for collision avoidance, as I believe it should.
Except in rare cases, if there’s no manual override, Dorico should handle vertical spacing correctly, according to your settings in the Layout Options.
Could you could share a file here?
It’s actually not a combo, they all remove different kinds of overrides
Adding a Frame Break is the easiest way to deal with it. Sometime Dorico underestimates the amount of space that the frame will fill. This is usually caused by lots of “off the staff” items, like Text, Lyrics, Rehearsal Marks, etc.
Well, I guess @benwiggy has the explanation, that Dorico’s algorithms do not do well with lyrics and other outside-the-staff items. Like most all of my projects, this project has lyrics and text objects. I ran a little experiment with different settings of Music Frame Bottom Margin.
Music Frame
Bottom Resulting Vertical MarginFrame Fill
0 mm 100% (behaves as expected)
4 mm 101.6% (bad behavior)
12 mm 104.7& (bad behavior)
23 mm 109.4% (very bad behavior)
24 mm 93.2% because last system finally moves to next page (expected behavior)
I understand that if the layout algorithm gets too complicated, it could result in an infinite loop, but it seems to me that some logic like the following could be added to the end of the layout algorithm:
Check Vertical Frame Fill and if > 100%, constrain that last system be in the next frame and rerun the algorithm, repeating until all pages are ≤ 100% fill, or the number of pages, whichever is less.
I think users should never see that red > 100% fill unless user has manually set frame breaks.
I’m attaching the project in case anyone from Steinberg wants to have a look at this. The problem is with the Music Frame on page 2, in Lqyout “Pn”. The problem also appears in the Music Frame on Page 1 with the higher bottom margins. The Page 1 Frame overflow keeps getting worse until the Music Frame Bottom Margin gets to 33 mm, when finally the bottom system gets moved to the next page.
Thank you, @asherber. I’ve read through that whole reply by @dspreadbury and there are several points that don’t quite make sense to me, most notably that Dorico can’t change its mind and force one of the systems into the next frame. Why not? I may be wrong, but I disagree that the problem is circular. I believe it is more like a conical spiral. Dorico may need to go around (run its layout algorithm) a few times, but each time it gets closer and can eventually coverge to a solution which satisfies both constraints of (1) fitting into all of the given frames and (2) no collisions. Today’s comoputers should be able to do this in a blink of an eye.
You say that, but Dorico can take its time dealing with very large files already. Adding more loops to go over the music again and again would only slow things down more and more.
If things were as simple as you suggest, then surely the team would have done that. As we haven’t seen the code, we have to take Daniel’s word for it.
Looking over the pages and adding the occasional Break is pretty much the only layout work that I do in many of my scores – and it’s a fraction of what I would have to do in any other app.
The main problem is that those are not the only two constraints. There is also (3) have page turns at places where the player has rests, (4-17?) keep all the vertical spacing options within their limits, (18) watch out for all items that have a “minimum distance to other items” set, (19) try to not have only a few bars on a page on their own, … and so on.