Any configurations for speeding up note input?

Been working on note input in a score today, and i’ve noticed it’s annoyingly laggy.

I’d classify size as “moderate”, fairly large orchestra (~30 staves) but only ~ 50 bars in the flow.

The delay is enough that it breaks my “feel” when doing note entry.

Are there any config settings/tweaks to improve this? I’m on a pretty monster system (20 core 10850k i9, 64GB, etc)

Sample from application log bewlow:

2022-02-10 17:41:28.260 [info] notifyPostCommandExecute: NoteInput.Pitch?Pitch=F (139 ms)
2022-02-10 17:41:28.393 [info] Executing command: NoteInput.Pitch?Pitch=G
2022-02-10 17:41:28.504 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-10 17:41:28.505 [info] addEventsForAudition() adding 6 events to buffer #:1
2022-02-10 17:41:28.532 [info] processAuditionEvents() - processed 7 events
2022-02-10 17:41:28.534 [info] notifyPostCommandExecute: NoteInput.Pitch?Pitch=G (140 ms)
2022-02-10 17:41:28.601 [info] Executing command: NoteInput.Pitch?Pitch=A
2022-02-10 17:41:28.711 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-10 17:41:28.712 [info] addEventsForAudition() adding 6 events to buffer #:1
2022-02-10 17:41:28.730 [info] processAuditionEvents() - processed 7 events
2022-02-10 17:41:28.745 [info] notifyPostCommandExecute: NoteInput.Pitch?Pitch=A (143 ms)
2022-02-10 17:41:29.049 [info] Executing command: NoteInput.Pitch?Pitch=B
2022-02-10 17:41:29.159 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-10 17:41:29.160 [info] addEventsForAudition() adding 6 events to buffer #:1
2022-02-10 17:41:29.189 [info] notifyPostCommandExecute: NoteInput.Pitch?Pitch=B (139 ms)
2022-02-10 17:41:29.191 [info] processAuditionEvents() - processed 7 events

Note input in a project with lots of staves at less than 150ms doesn’t seem too bad.

I’d suggest the usual things: use galley view if you’re not; have only a single window open onto the project; have only a single tab open onto the project.

You might also find that using an instrument filter to show only a subsection of the instruments is beneficial.

One other thing which might be worth trying if you are inputting using a MIDI keyboard is to reduce the buffer size in Preferences > Play > Audio Device Setup… > Buffer Size. I had set mine to 2048 recently to alleviate a problem with dropouts during playback of a large score but then found that there was a very noticeable lag between when I pressed a key (my keyboard is a MIDI controller keyboard with no built-in sounds) and when it sounded through Dorico. Lowering the buffer size to 512 vastly improved the response time.

Already doing all that.

It’s slow enough to be annoying. It’s also worse than 150ms any time, say, there are slurs involved.

I really wish there were options - one that springs to mind is fixed note spacing in galley view, which should eliminate a LOT of layout overhead.

It would also help my programmer brain if the logging went at least one level deeper down the stack, so I could understand what’s taking the time, e.g. data manipulation vs layout vs drawing vs auditioning.

Here’s sample logging output from entering a note in the middle of a slur…

If ~150ms is feels-bad but basically tolerable, 500+ms is REALLY bad;

2022-02-11 17:11:00.131 [info] Executing command: NoteInput.Pitch?Pitch=F
2022-02-11 17:11:00.253 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-11 17:11:00.282 [info] processAuditionEvents() - processed 1 events
2022-02-11 17:11:00.479 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-11 17:11:00.479 [info] processAuditionEvents() - processed 1 events
2022-02-11 17:11:00.701 [info] addEventsForAudition() adding 1 events to buffer #:0
2022-02-11 17:11:00.702 [info] addEventsForAudition() adding 6 events to buffer #:1
2022-02-11 17:11:00.710 [info] processAuditionEvents() - processed 7 events
2022-02-11 17:11:00.723 [info] notifyPostCommandExecute: NoteInput.Pitch?Pitch=F (592 ms)

What I’ve noticed (on not such a monster system, but a surface book 2) is, that reducing screen resolution helps (a bit). Also using my surface dock (with an included better grafic card) on external monitor makes a great inprovement on note-input speed.
So Dorico seems to me to be very greedy on grafic processing.
I doubt this will help you specifically a lot, but maybe future readers who search for the term in the title.

Dorico is certainly doing more work when inputting notes in the middle of a slur. It deletes the slur, recreates it with a new duration, runs some processors to determine whether the new duration is valid, and so on. At the moment the only workaround for that is to add the slurs afterwards, rather than as you input the notes.

That has always been the way I create scores in notation software. I, personally, find it to be quicker overall. Also, once all the notes are in place, I find I can be more expressive in how/where I use dynamics and do tweaks because I’m not ‘multitasking’ everything while trying to input notes🙃

Yes, I do 'several passes", too. Notes first, then dynamics, slurs, expressions, etc. Lyrics another pass. Then ‘layout’ tasks after that. I don’t think it’s necessarily slower.

The benefit is that in looking at the material again, I often uncover errors, or allow second thoughts to come to fruition.

3 Likes

Indeed🙂