ASIO-Guard vs real-time processing spikes on multi-bus projects (Cubase)

Hey everyone,

I’ve been digging into some performance behavior in Cubase and I’m trying to understand what’s actually happening under the hood.

On a fairly heavy project (multiple group buses, parallel compression, sidechains, and a mix of VSTi + audio tracks), I’m noticing that even with ASIO-Guard enabled, I still get occasional real-time peak spikes on the main meter.

What’s interesting is:

Average CPU load stays relatively stable
ASIO-Guard meter looks under control
But the real-time meter suddenly jumps, especially during playback transitions or when automation kicks in

I’m guessing this has something to do with:

non-ASIO-Guard-eligible plugins
sidechain routing forcing real-time paths
or certain buses not being pre-processed

I’ve tried:

increasing buffer size
freezing some VSTi tracks
simplifying routing in a few sections

Still seeing the same behavior in more complex parts of the project.

So I’m curious how others are handling this:

Do you actively design your routing to maximize ASIO-Guard efficiency, or is this just a limitation when dealing with heavier bus/sidechain setups?

Would love to hear how you guys approach optimizing projects at this level.

3 Likes

Cubase’s core handling is not up to scratch with modern multicore processors, see here

There may be some things you can do to make your situation better, but in a nutshell, Cubendo’s audio engine cannot make full use of modern cpus and often stalls (spikes, Asioguard overloads etc) at a total cpu usage as low as 20 percent.

I hope you can find ways to improve your situation.

All the best,

Magnus

3 Likes

I discovered exactly this behaviour back in 2024 and went down a rabbit hole with various people trying to get to the bottom of this. As @Magnus_N mentions it is an issue with how cubase audio engine works and I’d say it’s a legacy debt from when CPU’s were only 4 or 6 cores. Steinberg are aware of the problem but I’d say it would mean a whole rewrite to make this better, and perhaps that may impact on backwards compatability etc so a difficult situation all round.

The ‘workaround’ to this is to use Audio gridder locally on your DAW , so install the plugin and server, open the server and let it scan you plugins and then let AG server run in the back ground when you boot your machine.

When Cubase ASIO guard starts to creep high on your project, start adding your plugins vi the Audio gridder plugin VST iin cubase. Doiong this opened them outside the ‘Cubase process’ so you can use the untapped CPU power .

As an example of what this can achieve, I had a test mix project with 8 sub master busses and I loaded heavy plugins across those 8 busses. Each bus had 3 plugins each IIRC as default and I then started to add extra ones to see how many I could go… on my 9950x machine I managed an extra 15 chanels trip plugins across the busses, so and extra 2 each almost. Loading then same plugin via the Audio gridder plugin I stopped when I got over 100…… yes 100……That’s bacause ASIO gard was maxiing out with only 25% system resources being used, AG allows you to use the rest of the 70%.

AG will also let you load VST’s as well if your machine can work with it using no exctra buffers. I found when mixing using 2x or 4x extra buffer gave a lot of heardroom and didn’t affect the workflow too much. Yo can chose per plugin or global buffering, various sandboxing settings etc and I’ve found it to be robust enough for professional work.

M

2 Likes

For that reason I’ve stopped using multiple buses and sends and I keep them to just a few ones.

Most of modern DAWs have problems with multibus handling and Cubase is a good example of that. The best you can do is using inserts instead of sends when possible, having ASIO Guard at its maximum and learn to live with it.

AudioGridder is a great solution and it works pretty well but it has its own quirks. I used it for a long time to extend the life of my computer, but at some point I got tired of having this extra layer and I just changed my system for a mor powerful one.

A proper multicore system with plugin isolations is not hard to implement in any modern software, but more users have to ask for it. Furthermore, 99% of crashes in Cubase are due bad plugins, something that would be fixed just with something like that.

1 Like

My current system (i9 286k-based) does pretty well in handling my needs with the multiple buses/multiple bus structure levels scenarios. Mind you, I’m not doing any huge orchestral projects or anything, but I typically do have up to 5 levels in my structure – for example, in the case of drums, there would be the track level, a drums submix (which includes multiple FX buses with sends from the tracks level), instruments submix, main mix, and master (stereo out). There are also sidechains (e.g. kick might have a sidechain into a bass compressor, lead vocal might have a sidechain into something like Waves Curves Resolve on the instruments submix) and sends, both within a submix level (e.g. I typically have 5-6 FX buses in the lead vocal chain, and some of those send to others, like a delay sending to a reverb), and to separate submixes (e.g. with all submixes except drums sending to the a Scheps-style “rear bus” that then goes to the main mix).

With one exception, I don’t pay any direct attention to ASIO-Guard-type considerations, but there are a few things I do pretty regularly, based on experience with my previous system that was decidedly CPU-strapped, that may get me farther than even my current system might go.

The one exception: If I do actually run out of steam in the late stages of mixing, where the system can’t keep up, be it overall or at a busier point in the project. I try the “HALion trick”. Specifically, this is inserting a new HALion Sonic instrument track and giving that track the focus. This will usually let my project play smoothly even if it was dropping out. (Of course, if I keep adding more to it, it might eventually get to a point where even that is insufficient.) What it seems to do is force a real-time thread that better balances CPU use on my system. (This also worked on my older i7 5820k-based system, though I couldn’t get nearly as far with that system before things crapped out.)

As for the more general things that I do that may help, here are some that come to mind:

During the arranging and tracking stages of my project I’ve generally got live instrument tracks, but with a flat, or relatively flat, bus structure, be that everything going to the Stereo Out or maybe all the instruments going to an Instruments Submix group bus, background vocals going to a BGVs Submix bus, and minimal routing in the lead vocals (probably just the mono lead vocal going to a Lead Vocal Submix bus that has an all-in-one vocal chain on it for doing any work mixes).

Once I’ve got the arrangement and basic MIDI editing done, I render the instrument tracks (with any processing that would have been committed to tape in a more traditional recording environment, including tape emulation if used) to audio, using the audio for further mixing, disabling the instrument track and moving the instrument track to a Live Instruments folder. (I also have an Old Instruments folder for backing up earlier versions of instrument tracks, such as the raw takes, post-comping but pre-editing, etc.)

I do similar things with vocals (usually the only true source audio in my projects) with respect to the work-in-progress backups and eventually rendering what would have gone to tape.

In certain, more complex grouping scenarios, I may export a submix and use that for further mixing if I don’t need to be changing balances and such in what is feeding the submix. This is something I most frequently do with background vocals, but also fairly commonly with synth pads and sometimes certain complex (routing-wise) electric guitar parts that are really only meant to be one instrument (e.g. a lead guitar part feeding a multiple amp setup) and might have been tracked to tape as a stereo pair in a more traditional environment.

I generally don’t set up my main multi-level bus structure until actually starting to mix. So it’s kind of like what I’d done earlier was being the recording’s producer/engineer (and musician and singer and arranger), and now I’ve handed it off to a mixing engineer (and also mastering engineer since I do the mastering in the same project). Of course, I can always make lower-level changes by enabling the backed up parts, doing any tweaks, and re-rendering to audio, but that’s relatively rare (maybe only a time or two per project, if even that? – I tend to do a lot of work mixes along the way, so I tend to catch those sorts of issues prior to rendering to audio the first time).

At the mixing level, though, I am generally running all effects live, though there is always the option to freeze tracks, if needed. (It hasn’t been lately.)

1 Like