Dorico is too slow!

You’re on page 62 of a layout that presumably holds 140 flows, and you’re manually overriding frames on individual pages? Your computer isn’t sufficiently powerful.

No, I’m not Daniel, and I can’t speak for Daniel, but I have plenty of experience working with these sorts of projects, and my MacBook is pretty similarly-specced to yours, albeit a bit older.

Dear members of the forum and readers,
Just to inform you what has happened this week,
I did sent my work (project - book) to Daniel at Steinberg and they had a closer look at it.

and here’s their answer.

“it has revealed some specific performance problems that we will be able to address in the next Dorico update”

However, you should find that the current version of Dorico will run your project more quickly if you approach the layout a bit differently. You currently have a large number of frame chains in your master pages, all of which are set to contain all flows. You should either filter the frame chains so that only the flows you actually need to appear in each flow is included in the frame chain, or you should use individual layout-specific music frames with only a single flow assigned.

At the moment, each of your frames has all 140+ flows assigned to it, resulting in Dorico having to maintain more than 2100 copies of those flows, which is why everything is so slow.



So I deleted all my masterpages out of the project.
This had a significant change in performance.

But at the mean time it has raised questions to me about the functionality of a master page?
I wonder if that is being addressed in the next Dorico update.”
We will see…

Thanks everybody for your tips and suggestions,
Very much appreciated,
Friendly greetings,
Vincent

I’m afraid I don’t quite understand this. How exactly did you set up your project? Did you have different, linked master pages for each flow? I’m not sure how each frame can have more than 140 flows attached to it, and how that can produce 2100 copies of those flows. It’d be useful to explain this clearly as an example of what not to do.

What are your questions about the functionality of a master page?

Without seeing the project I can’t possibly know, but I suspect you’ve gone a very weird way about something that can be achieved much more easily (and efficiently) via a different method.

I could imagine that you could use lots of frame chains etc as a very inefficient alternative to frame breaks, system breaks, and/or flow headings. (Put flows 1-140 in a chain that has only one frame and only displays flow 1, then put flows 2-140 in another chain that only displays flow 2, etc.)

But of course we are just guessing what Vincent might have done, and unless it was something that other people would be likely to try to do, there might not be much value in knowing in any case.

Dear members,

I created master-pages for certain kind of layouts.
One master page would held 3 flows. Another one 4 flows. etc etc.
I thought that was the functionality and the only reason of creating master-pages.
So you don’t have to layout every page again and again.

So again; I’m not sure what Daniel meant with…
]it has revealed some specific performance problems that we will be able to address in the next Dorico update

Maybe I can invite Daniel again to jump into this discussion.

Friendly greetings,
Vincent

The way Vincent set up his project was completely at odds with the way we expect the program to be used. Inevitably the technical design of the software is optimised for the way that we expect the program to be used, and in this specific case it concerns the kinds of containers used to hold data about the frame chains. (Software developers will know that the various kinds of containers used in programming – maps, vectors, lists, sets, etc. – have different performance characteristics when it comes to sorting, inserting, deleting, copying, etc., and perform differently when they contain extreme numbers of items, i.e. either a very few items or a very large number of items.)

Normally you either have a single frame chain in the master page that links all of the flows (one frame chain, with many flows), or you use layout frame chains which link individual flows (many frame chains, each with one or two flows). Vincent’s project used many master page frame chains, which linked all the flows (many frame chains, each with many flows), which in a 140-flow project only requires 15 instances of the master page frame chain before you have over 2000 flows being operated on by the program. Dorico was optimised for the two expected use cases, and not for this third unexpected one, and as a consequence it doesn’t perform well when you push it in that direction. We have made some changes ahead of the next update that will reduce the negative performance impact of having so many copies of the master page frame chain in a project, but it doesn’t change our recommendations about how you should use the page layout features of the program.

If you want to produce a project that uses a common page layout with, say, flows interspersed with text, use a single frame chain with multiple frames on each page in your master pages. If you require a more irregular layout that varies more from page to page, don’t use the automatic master pages, and instead create your music frames as needed in the layout, assigning only the flow you want to appear in that frame (and link multiple layout-specific frames if you need to run music from one flow to another).

Hi Daniel,
Thank you so much for your swift reaction.
It really helps to understand Dorico better.
Let me explain once again what happened.

  • I designed master-pages with text, music, graphics, titles, page numers etc, etc. to appear in a certain way. (There can be several maybe 10 or 20)
  • Then I enforce those master page changes to the pages that I want to look like the master pages.
  • This works perfect and all my pages look exactly like I want them to be.
  • If I now want specific flows to appear I have to unlink the frame chain other wise I don’t get this option.

Sorry for taking the third way !

Friendly greetings,
Vincent