Jump to content

Improve engine load?


Mannymac

Recommended Posts

Hi folks,

I love Cakewalk. Love the UI, the mixer, the Console 1 integration. It is just super intuitive to mix in it.
What I dont love is how Cakewalk is seemingly unable to make full use of my PC's power hower.

I've got a a 3XS Audio PC from Scan.co.uk, Ryzen 3950x and 32 GB of DDR4 Ram, Windows 10 with an RME Babyface.

I have plugin load balancing enabled, internet and anti virus scanner are  of and the highest DPC latency I get in LatencyMon is  36 micro seconds.

So In theory it should all work. However in a project with 20 tracks and 10 busses at 48khz I have to run at a 2048 buffer. I get a CPU load of 17% but an engine load of 100% and occasional crackles? What gives? Am I missing a setting here  (I tried all 3 thread modes in the settings.) How can Cakewalk run out of steam when it uses about 15% of my power?

I do use fairly heavy bus processing and light processing on individual tracks which sadly means freezing wont work. Any help or suggestions much appreciated. I heard Reaper is better when it comes to this but I really dont want to switch.

 

UPDATE 4.1.2023

For anybody interested in this, I found a solution!

Thanks to the new engine meter in Cakewalk (thanks for that devs!) I was able to pinpoint exactly the issue.

It is that Cakewalk is really not the best (worse than Reaper and to a lesser degree Pro Tools in my tests with sessions I ported over) with longer Plugin Chains on Busses/Auxes.

I dont know why that is but certain plugins place a higher load on the engine when on a buss compared to a stereo track. Zynaptiq Intensity for example added only 1,5% engine load to my session on a stereo track but a whooping 10% to the engine load when on a Bus. Similar story with other Multiband Processors or especially Acustica Audio plugins.

Anyway, the solution for me is to just use Audio Gridder running as a "server" on the same machine (https://audiogridder.com/) to load chains on busses instead of inserting them directly into Cakewalk. That way I can now run a fairly heavy project at 256 Buffer with my RME ADI-2 Pro FS R without dropouts and an engine load at 50%! Fantastic!

To do this install the Audo Gridder Server app and the plugin on the same machine. Start the Server App, then insert the plugin on your buss. Do a scan, load all your plugins in this wrapper et voila. Any negligible increase in latency by Audio Gridder is actually offset by me being able to have my buffer so low. So I have less engine load, and less latency!

Cakewalk is my favourite DAW and I was really trying everything to be able to keep using it instead of REAPER.

Edited by Mannymac
Link to comment
Share on other sites

Are you tracking (recording) or mixing/mastering? Running a higher buffer for mixing shouldn't be an issue.

What plugins are you using on the busses? Linear Phase type plug-ins will probably have a negative impact on real-time processing due to look-ahead buffering. Again, that should not be an issue for mixing/mastering, as buffering during playback should accommodate that.

Link to comment
Share on other sites

7 hours ago, Mannymac said:

So In theroy it should all work.

What theory?

Given there are no hard limits imposed by the DAW, it is pretty easy to create a project that won't run.

7 hours ago, Mannymac said:

However in a project with 20 tracks and 10 busses at 48khz I have to run at a 2048 buffer. I get a CPU load of 17% but an engine load of 100% and occasional crackles?

That is a pretty high bus to track ratio.

There is no information provided about the tracks themselves. 20 audio tracks is nothing. 20 tracks of deeply sampled or computationally complex synth plug-ins are a different story.

Ten buses simply summing up the 20 tracks is nothing. Ten buses with tens of plug-ins on each may not run at all.

7 hours ago, Mannymac said:

I do use fairly heavy bus processing and light processing on individual tracks which sadly means freezing wont work.

While freezing may not an option, bounce and archive is.  It may be time to commit. Or rethink the project layout.

 

 

  • Like 1
Link to comment
Share on other sites

20 hours ago, Mannymac said:

However in a project with 20 tracks and 10 busses at 48khz I have to run at a 2048 buffer. I get a CPU load of 17% but an engine load of 100% and occasional crackles?

What gives? Am I missing a setting here  (I tried all 3 thread modes in the settings.) How can Cakewalk run out of steam when it uses about 15% of my power?

The plugins you're using and which ones you have open can make a big difference. Your graphics card could be the bottleneck. 

I had a similar problem and upgraded my graphics card to add OpenGL processing capacity. Now I can mix at lower buffer sizes and with a higher CPU load without dropouts.

I use a lot of iZotope plugins that have very useful but processor intensive displays that use OpenGL for graphics processing. Turns out a lot of plugin and some DAW manufactures rely extensively on OpenGL but never mention it in their system recommendations. I like to have several iZotope plugins open at once while I'm tweaking a mix to adjust front to back placement, tonal balance and masking. When I'd do this I'd start getting dropouts, pops and clicks while my 6-core 12-thread CPU was cruising along at 10%-20% load. In fact, Pete Kaine of Scan helped me a lot in trouble shooting the problem in this thread on the SOS Forum.   Since you have a Scan DAW, I'd recommend you talk to Pete.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 2 years later...

For anybody interested in this, I found a solution!

Thanks to the new engine meter in Cakewalk (thanks for that devs!) I was able to pinpoint exactly the issue.

It is that Cakewalk is really not the best (worse than Reaper and to a lesser degree Pro Tools in my tests with sessions I ported over) with longer Plugin Chains on Busses/Auxes.

I dont know why that is but certain plugins place a higher load on the engine when on a buss compared to a stereo track. Zynaptiq Intensity for example added only 1,5% engine load to my session on a stereo track but a whooping 10% to the engine load when on a Buss. Similar story with other Multiband Processors or especially Acustica Audio plugins.

Anyway, the solution for me is to just use Audio Gridder running as a "server" on the same machine (https://audiogridder.com/) to load chains on busses instead of inserting them directly into Cakewalk. That way I can now run a fairly heavy project at 256 Buffer with my RME ADI-2 Pro FS R without dropouts and an engine load at 50%! Fantastic!

To do this install the Audo Gridder Server app and the plugin on the same machine. Start the Server App, then insert the plugin on your buss. Do a scan, load all your plugins in this wrapper et voila. Any negligible increase in latency by Audio Gridder is actually offset by me being able to have my buffer so low. So I have less engine load, and less latency!

Cakewalk is my favourite DAW and I was really trying everything to be able to keep using it instead of REAPER.

 

@Noel: Can you comment on why the engine load is different for a plugin on a buss compared to it on a track?

Edited by Mannymac
  • Like 4
Link to comment
Share on other sites

20 hours ago, Mannymac said:

Anyway, the solution for me is to just use Audio Gridder running as a "server" on the same machine (https://audiogridder.com/) to load chains on busses instead of inserting them directly into Cakewalk. That way I can now run a fairly heavy project at 256 Buffer with my RME ADI-2 Pro FS R without dropouts and an engine load at 50%! Fantastic!

That's very interesting. But if you can offload the chains to Audio Gridder on the same machine, you should be able to do the same in Cakewalk. It's absolutely worth chasing down to the bottom what is going on there :).

Link to comment
Share on other sites

Thats what I thought initially . But the bottleneck is not my machine it's the engine load in Cakewalk. As I said I can run the same plugin chains with the exact same routing in other DAW's just fine. I can even run the same chains in Cakewalk if they are on tracks not Busses. The problem is the engine load on Busses in Cakewalk. As to why that is? No idea.

I found out quite a while ago that with modern CPU's the bottleneck is the CPU no longer. My session only uses 20% of my CPU but the engine load within Cakewalk is about 95-110% (past 100% is where the glitches come) at 512 Buffer. That is where Reaper outperforms Cakewalk by quite a margin in my particular case. Or in Cakewalk's own words:
"The Engine Load value is a percentage of the total time the engine took to process an audio buffer. If it takes 100% or more of the allotted time, the buffer is processed too late and it will result in audio glitches/distortion."

When I run my buss chain of about 6 plugins on two busses so 12 in total via Audio Gridder I have 65% engine load at 128 buffer. So it performs faster and more stable that way. I am a happy camper with that.

I am using an RME ADI-2 Pro FS R as my interface, latest BIOS, no other programmes running, WIFI swiched off, latest driver for everything and an SSD. Given their excellent ASIO drivers I can say with a degree of certainty that won't be the problem either.

And again, exact same plugins on stereo tracks run just fine. Whatever Cakewalk does on Busses compared to tracks seems to place a higher load on the engine. But that is beyond my paygrade.
Cakewalk is the best DAW I ever used so I'm just glad I was able to solve this. I am no programmer so I have no idea if that is even possible but maybe there are ways to improve the way the engine handles Buss plugins. It seems I'm not the only one struggling with this so maybe an area for exploration for the bakers?

But then again, I know bugger all about programming. As always, it might just be that certain plugins don't like being on a Cakewalk Buss at which point there is nothing they can do and it is a compatibility issue.

PS: If Noel or any of the bakers want my session to check I'll happily pass it along.

 

Edited by Mannymac
Link to comment
Share on other sites

2 hours ago, Mannymac said:

PS: If Noel or any of the bakers want my session to check I'll happily pass it along.

Suggest that maybe edit your topic title to include more specific keywords regarding "CW engine loads on track FX vs. bus FX", rather than just the original "Improve Engine Load"???

I realize that you just uncovered this distinction in your session, but you really should update the topic title now. And if you want Noel to see this thread, you do it like this... @Noel Borthwick

Edited by abacab
Link to comment
Share on other sites

So just to clarify you're loading the same number / type of plugins and you're finding that the load is significantly higher when inserted on the buss rather than the track?

I did my own brief test using 15 copies of an intensive delay plugin and actually had the exact opposite result - putting them all on a single track caused the usage to be between 6-11%, whereas running them all on the bus with a single track going to it (equivelent set up) only had the load between 2-5%.

This is certainly something that could warrant some further tests - my expectation would be that a 1:1 ratio of track to bus should have similar overall load, it shouldn't make any significant difference to the load where the FX is placed, indicating that both of our results are odd. I may be missing something though.

Best wishes,
Matthew

Edited by Matthew Simon Fletcher
Link to comment
Share on other sites

On 1/4/2023 at 7:54 AM, Mannymac said:

For anybody interested in this, I found a solution!

Thanks to the new engine meter in Cakewalk (thanks for that devs!) I was able to pinpoint exactly the issue.

It is that Cakewalk is really not the best (worse than Reaper and to a lesser degree Pro Tools in my tests with sessions I ported over) with longer Plugin Chains on Busses/Auxes.

I dont know why that is but certain plugins place a higher load on the engine when on a buss compared to a stereo track. Zynaptiq Intensity for example added only 1,5% engine load to my session on a stereo track but a whooping 10% to the engine load when on a Buss. Similar story with other Multiband Processors or especially Acustica Audio plugins.

Anyway, the solution for me is to just use Audio Gridder running as a "server" on the same machine (https://audiogridder.com/) to load chains on busses instead of inserting them directly into Cakewalk. That way I can now run a fairly heavy project at 256 Buffer with my RME ADI-2 Pro FS R without dropouts and an engine load at 50%! Fantastic!

To do this install the Audo Gridder Server app and the plugin on the same machine. Start the Server App, then insert the plugin on your buss. Do a scan, load all your plugins in this wrapper et voila. Any negligible increase in latency by Audio Gridder is actually offset by me being able to have my buffer so low. So I have less engine load, and less latency!

Cakewalk is my favourite DAW and I was really trying everything to be able to keep using it instead of REAPER.

 

@Noel: Can you comment on why the engine load is different for a plugin on a buss compared to it on a track?

This is very interesting, and must make WAVES with their $4K Grid Server very nervous. ? If you’re “offloading “ plug-ins from “inside” CW to the same machine, how does that make a difference with CPU load? Isn’t CW tapping the CPU to run plugins, just like this system does?

Link to comment
Share on other sites

12 hours ago, Billy86 said:

This is very interesting, and must make WAVES with their $4K Grid Server very nervous. ? If you’re “offloading “ plug-ins from “inside” CW to the same machine, how does that make a difference with CPU load? Isn’t CW tapping the CPU to run plugins, just like this system does?

Every machine is different as you can see by the replies here so take everything I say with a grain of salt and based on my experience but:

CPU load is the same...what is changing is the engine load (different thing!) My engine load is way less when running it through Audio Gridder leading me to be able to mix at lower buffer in ASIO and lower latency.

Link to comment
Share on other sites

21 hours ago, Matthew Simon Fletcher said:

So just to clarify you're loading the same number / type of plugins and you're finding that the load is significantly higher when inserted on the buss rather than the track?

I did my own brief test using 15 copies of an intensive delay plugin and actually had the exact opposite result - putting them all on a single track caused the usage to be between 6-11%, whereas running them all on the bus with a single track going to it (equivelent set up) only had the load between 2-5%.

This is certainly something that could warrant some further tests - my expectation would be that a 1:1 ratio of track to bus should have similar overall load, it shouldn't make any significant difference to the load where the FX is placed, indicating that both of our results are odd. I may be missing something though.

Best wishes,
Matthew

Yes exactly thats what I found.

 

Sorry I dont quite understand what you are saying here in regards to your test? to make the test worthwile you would need 15 bussess, eah with a track routed to it with the delay plugin compared to 15 single tracks delay inserted directly. Did you create 15 bussess or routed 15 tracks into one buss?

Link to comment
Share on other sites

Well there are quite a few variables to explore here!

I'm someone who runs very large Cakewalk projects with a lot of instruments / plugins (on track and bus) so hence your findings are curious and may have implications for how I structure things if it reproducibly the case.

Based on your findings, the initial hypothesis I wanted to test was that there would be a difference in performance between using tracks versus busses. Hence using the simplest test case of 1:1 mapping of track to bus.

Using a single plugin I couldn't see any meaningful difference between having this on the track, or on bus that the track goes to. With loading the 15 plugins though it became noticably different, just not the way around I was expecting given your findings!

In both of our cases I would have expected that the load would be the same - so hence even though our results were the opposite, they both provide evidence of something unusual going on and I would be interested to see Noel's thoughts on that, in case he thinks it worth following up on.

You're right that running 15 tracks with single FX on and 15 tracks to a single bus with the FX would also be good further tests but my results already validate the hypothesis that tracks/bus have different impact in terms of resource usage even when used in a similar manner.

Link to comment
Share on other sites

On 1/5/2023 at 8:15 AM, Mannymac said:

Thats what I thought initially . But the bottleneck is not my machine it's the engine load in Cakewalk. As I said I can run the same plugin chains with the exact same routing in other DAW's just fine. I can even run the same chains in Cakewalk if they are on tracks not Busses. The problem is the engine load on Busses in Cakewalk. As to why that is? No idea.

I found out quite a while ago that with modern CPU's the bottleneck is the CPU no longer. My session only uses 20% of my CPU but the engine load within Cakewalk is about 95-110% (past 100% is where the glitches come) at 512 Buffer. That is where Reaper outperforms Cakewalk by quite a margin in my particular case. Or in Cakewalk's own words:
"The Engine Load value is a percentage of the total time the engine took to process an audio buffer. If it takes 100% or more of the allotted time, the buffer is processed too late and it will result in audio glitches/distortion."

When I run my buss chain of about 6 plugins on two busses so 12 in total via Audio Gridder I have 65% engine load at 128 buffer. So it performs faster and more stable that way. I am a happy camper with that.

I am using an RME ADI-2 Pro FS R as my interface, latest BIOS, no other programmes running, WIFI swiched off, latest driver for everything and an SSD. Given their excellent ASIO drivers I can say with a degree of certainty that won't be the problem either.

And again, exact same plugins on stereo tracks run just fine. Whatever Cakewalk does on Busses compared to tracks seems to place a higher load on the engine. But that is beyond my paygrade.
Cakewalk is the best DAW I ever used so I'm just glad I was able to solve this. I am no programmer so I have no idea if that is even possible but maybe there are ways to improve the way the engine handles Buss plugins. It seems I'm not the only one struggling with this so maybe an area for exploration for the bakers?

But then again, I know bugger all about programming. As always, it might just be that certain plugins don't like being on a Cakewalk Buss at which point there is nothing they can do and it is a compatibility issue.

PS: If Noel or any of the bakers want my session to check I'll happily pass it along.

 

As far as multiprocessing goes buses are tracks are pretty identical so I don't see why you should see a difference if you are testing the same chain of plugins in a bus vs a track.  However, you have to be careful to eliminate dependencies on other other tracks routed to the bus. The bus has the additional load of waiting for all its dependencies to be computed before it can mix its inputs.

You can also try this test using aux tracks instead of buses and put your plugins there. Behind the scenes as far as mixing goes there is no difference between a track or a bus. They are all mix buses internally.

Link to comment
Share on other sites

37 minutes ago, Noel Borthwick said:

be careful to eliminate dependencies on other other tracks routed to the bus. The bus has the additional load of waiting for all its dependencies to be computed before it can mix its inputs.

Can you explain this in more practical terms? I'm not sure what a "dependency" is in this scenario.

I imagine that it has to do with the bus having to wait for every track that is routed to it to finish doing whatever it needs to do with  the stream (FX, synth computation) before it can do its thing, but in practical terms, how would I set things up to be able to observe this or optimize it?

Link to comment
Share on other sites

Yes. buses cannot start processing until all upstream tracks or other buses routed to it have finished processing their effects. Only then can the bus mix its inputs and proceed to processing the bus fx chain.

If you have complex dependencies of tracks and other buses sourcing the main bus then those count towards the "engine load" since they are additive. In other words no matter how many cores you have if the work is serial multiprocessing won't help you.

  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...