High CPU usage during playback

Hi,

I’m using Dorico together with VSL VEPRO and MIR PRO. During playback, Dorico’s CPU usage goes to the stars. Here is my setup.

  • Dorico with a single instrument staff. Two voices, with two separate VIs.
  • VI for voice 1 is NotePerformer, VI for voice 2 is VEPRO.
  • The NotePerformer mixer channel has Vienna Ensemble Pro Audio Input as an insert. NP’s own reverb is turned off.
  • VEPRO hosts an AU instrument (conTimbre ePlayer, based on Max), and the Audio Input stereo channel coming from NotePerformer. Both are sent to the MIR PRO plugin, each one with its own separate icon.

On playback, Dorico takes a lot of CPU. Not so, apparently, the VST Audio Engine. I’m attaching the spindump taken while this was happening.

Paolo
pt-Spindump-dorico-vepro-mirpro.zip (903 KB)

Thanks for the data. There is a known issue that the video engine is doing too much work, even if there is no video attached ( https://www.steinberg.net/forums/viewtopic.php?f=246&t=167430 )
But in your case the main thread is also doing a lot of painting work. Would you be able to share the project with me? Please send to ‘u dot stoermer at steinberg dot de’. Thanks

I’ve looked at the spindump, and Dorico isn’t doing anything unusual, just redrawing the score. It’s worth noting that it’s to be expected that CPU load will increase when your computer is, you know, doing something, so high CPU utilisation doesn’t necessarily indicate anything untoward. However, as Ulf says, you could experimentally try removing the video engine from the Dorico application package to see whether that makes any difference.

But in this case it is unnaturally high. I mean, it’s just a single staff, whole notes, three VIs. Dorico is taking about 120-130% of CPU time, with the VST Audio Engine taking another 30%. The mini fan is spinning fast.

However, it is true that similar CPU usage can be seen when playing without VEPRO, but only with NotePerformer. A five staff piece with only NotePerformer, no audio streams towards external apps, takes marginally less CPU.

By comparison, the same five staff piece in Logic, with Logic’s internal sounds from EXS24, only takes about 30% of CPU. So, there is a huge difference that I would like to see if can be lowered.

I’ll try by removing the the video engine, that at the moment I’m not using.

Paolo

Tried, and it indeed does a huge difference! Dorico is only taking about 7-10% of CPU, the VST Audio Engine 30%, VEPRO 35%.

Yes, removing the video engine seems to (temporarily) solve this issue. I’m on High Sierra, by the way.

Thank you both for taking your time to help even on Easter! Have a nice remaining part of Easter!

Paolo

Thank you. Happy Easter to everyone. :smiley:

FWIW, I’ve also removed the video engine from the Dorico version on the laptop and since then I haven’t had racing fans, either.

Maybe the video engine on/off could become an option in the preferences? Even on machines exhibiting this issue, one could turn it on when needed.

Paolo

If using VIs, try a separate instance for each instrument. An instance uses one core only and multiple instruments in that instance increases the load. Multiple instances let the OS balance the load among the cores.

If that is true, why do some VIs (e.g, HALion, Pianoteq, etc) have an option to control the number of cores they use?

Unfortunately, the issue may appear even with the video component removed.

I use NotePerformer to play a fine-staff piece. Five NP instances, to be able to treat them separately.

NP’s reverb was deactivated. I inserted VSL’s MIR PRO as reverb plugins for each NP instance.

When playing it back, or generating an audio file, the VSP Audio Engine may go up to 250% or CPU, and Dorico to 80%.

For some reasons, Activity Monitor didn’t create a spindump. I’ll retry again when it happens again.

Paolo

How many cores does your CPU have? If you have 8 (quite common these days), then Activity Monitor would show at full load 800%, i.e. 100% for each core. In that case 250% is not that awful lot. Please also consider that you inserted 5 instances of a convolution reverb, which needs quite a bit of processing power.

My old, trusty (not yet rusty!) Mac mini 2012 has 4 i7 cores.

To help you put things in perspective, I just compared the same project made in two different ways:

a) four VSL Synchronized SE instruments, one VSL Synchron Piano inserted in Dorico;
b) the same as above, but hosted by VEPRO.

In neither case there is an additional reverb, apart for the one standard in the SynSE instruments.

With (a), Dorico is typically around 90%, VST Audio Engine around 81%. Computer fan screaming loud.

With (b), Dorico and VST Audio Engine are each at about 17%, VEPRO at about 35%. Computer fan is quiet.

So, with (a) I need 170% of CPU time, with (b) I only need 70%. There is considerable difference, and I would like to see if there is some other setting I can do to lower the CPU time in situations like (a).

Clearly, I can always use VEPRO, but it would be great to see if direct hosting in Dorico can be a little lighter.

This time I could get a spindump of Dorico during (a).

Paolo

pt-Spindump-synse.zip (755 KB)