Audio Performance meters are peaking like crazy at 0 load (Cubase 12)

Ah, thanks for the link.

I see. So reducing the buffer size simply reduces the headroom.

It would seem to me that if you have ASIO Guard running, you wouldn’t need to change your buffer size to anything higher ever… like during mixing… but that is not the case for me. Perhaps it’s because I’m not using the maximum ASIO guard setting.

Yes, the buffer only sets the audio block size.
With higher values, the CPU has more time to complete the processing of one block, but this increases the latency.

For instance when you use a buffer of 2048 samples (42 ms at 48 kHz, no ASIO Guard involved for now), the CPU, if it’s fast enough, will generally finish to process the block much earlier than the allowed time frame. Let’s say the processing is completed under 10 ms, so in that case for the remaining 32 ms it will do nothing, and wait for the end of the timer before sending the processed block to playback. When the current block starts playing, the next one begins processing in the background, etc.
The performance meter shows exactly how much of this headroom is being used. So with lower buffer, the meter peaks much higher.

Now the tricky part is to understand how ASIO Guard exactly works. It doesn’t simply replace the main buffer. Even though ASIO Guard is being used, Cubase still have some processing to do on the real-time path, as the audio has to go through the main buffer anyways once it leaves ASIO Guard.

ASIO Guard comes first in the chain, and the specificity of this, is that it is able to hold multiple audio blocks before sending them to playback.
The size of audio blocks is always set by the main buffer. A higher ASIO Guard setting will only increase the processing headroom and the number of audio blocks that can be stored before sending them back to playback.
For example you use a buffer of 256, and ASIO Guard is at High setting (4096 I believe but I’m not sure, let’s still take this as example). With these settings, the ASIO Guard buffer is able to process and store 16 blocks of 256 samples.

From a processing point of view, this indeed doesn’t change anything if you use buffers of various size. If you choose 1024, ASIO Guard will be able to store 4 blocks instead of 16, but the time needed to process is exactly the same, as the total number of samples is the same.

However, the main buffer is still used after the blocks exit ASIO Guard.
When the main buffer is larger than the ASIO Guard buffer, one block cannot fully reside in ASIO Guard and it needs to use the Real-Time path to process the rest of the block.
For this reason the ASIO Guard level should always be set higher than the buffer size, so that it can hold at least one full block. Setting the buffer to a high value and ASIO Guard to Low is counter intuitive.

Cubase will necessarily need to use the Real-Time path to output the audio, once it has been processed with ASIO Guard, so if you have a slow CPU or other programs that take too much ressources, having a low buffer will effectively impact the performance and can still cause dropouts!

That said, even though the ASIO Guard level is set properly, if ever ASIO Guard maxes out, then it will have to use the main buffer as last resort, so you can really expect a smoother experience by setting a larger buffer initially.

2 Likes

interesting. So best to have a higher ASIO Guard setting, or at least one that’s higher than your main buffer setting. For some reason, I think I had trouble in the past with a higher setting, or a lower setting… I can’t remember… but the cause may have been because of my main buffer size being set too high in relation.

Would you recommend turning ASIO Guard off if you’re just mixing? …or is it only activated when there’s a record-enabled track so it doesn’t matter… I have my tracks set to automatically record-enable when selected, which perhaps I should just turn that off when in mixing mode. But again, perhaps it doesn’t matter… but I do set my buffer size to the largest it can be during mixing, and I don’t touch my ASIO Guard setting ever, and I think it’s set to medium at the moment… so that could be working against me.

I use a buffer of 512 most of the time, but I change it to 64 when I’m recording, and 1024 when mixing relatively heavy projects. What would you recommend me to do with ASIO Guard? set it to High and forget about it, or change it or maybe disable it depending on what buffer size I’m using?

@shagazulu @Giovanni_Buchelli No you don’t have to turn off ASIO Guard.

Actually I have just checked it again and it seems that the AG size automatically adapts to the buffer.
I don’t remember noticing that in the past, but when you set the buffer to a high value, the AG buffer cannot stay below that and will automatically increase so that at least one block and a half can fit in it.

I think that’s a safety feature they have added. For me at 96 Khz with the buffer set to 2048, the AG Low and Normal have the same latency so both options operate the same.
When Cubase 12 got released there were some issues regarding how the ASIO Guard Level and buffer size were working together. People were experiencing performance issues when the buffer size was larger than AG, but they seem to have fixed it with maintenance updates.

So long story short, if you are using low buffer sizes, you’ll be able to use AG Low in order to reduce the – playback – latency. If you happen to increase the buffer size, the AG Low will automatically increase to fit the bigger buffer, up to the point where Low and Normal will have the same value. In most cases you can leave it to Normal, and forget about it.
If you are working on a very large project with a lot of instruments and plugins, then you can set it to High for better performance, but the increase in latency is tremendous. Only use High when needed.

Disabling AG will make you lose performance as the engine will have to rely on the real-time path only, with no headroom at all.
Some 3rd party plugins don’t work well when AG is enabled, but hopefully when this happens we can disable AG per plugin in the Plugin Manager, we don’t need to turn it off entirely.

An old video explains that the best performance with AG is when it is between 4 and 16 times larger than the buffer size. Above 16 it doesn’t increase the performance much further. I don’t know if it’s still valid but you get the idea. It has probably been updated since all this time.

It’s the other way around, AG is useful for mixing, and is automatically turned off for tracks that are monitored.

3 Likes

Wow, this isn’t intuitive to me. It’s useful for mixing? I guess I hadn’t thought about it in that context and only in the context of recording. But, I guess, yeah, it makes sense.

So, when you’re saying the latency is huge with AG on the highest setting, you’re talking about the time between hitting play and hearing audio, right? I’m just double-checking. I’m not sure I’ve experienced too huge of a latency doing that, but perhaps I haven’t really tried it on a big enough project. I would get quite annoyed with waiting a second or more every time I hit play while I’m working.

Here’s the other thing I’m thinking: Doesn’t the AG buffer deplete after a period of time with the project playing and not stopping? Maybe not, now that I’m really analyzing it… It’s only doing part of the work. Hmm…

So, these are basically 2 separate buffers running side-by-side and that’s why it helps with mixing and everything else. Wow… So, we should just leave it on, on a medium setting or maybe lower, until we need it to be higher… but regardless, the AG buffer will dynamically expand depending on our real-time buffer setting. I think I might finally understand this. :smiley:

Now it just needs to work, instead of causing me problems. Maybe those problems are fixed now. But I just checked my settings again and I had AG disabled so I need to try again now.

I’m off to watch that video.
Thanks again for the help.

1 Like

AG has nothing to do with recording. You can record the same whether AG is turned on or off.
It is all about headroom for processing. When you record, the whole project has to play, so all the other tracks need to process.

Yes it’s only for playback, that is, the delay when pressing Play, Stop or hearing the changes when you tweak a parameter or plugin. But it’s not that huge :laughing:
I work at 96 kHz and for me the AG latency is 16 ms on Low, 32 ms on Normal and 106 ms on High. Not even close to a second, but still more than three times higher than the Normal setting.

I’m not sure if I understand the question right, but actually the processing is happening permanently in the background, even when the project is stopped. The AG buffer never depletes, it keeps processing the incoming signal in a rolling manner, whether the project is playing or on stop poisition.

The buffer only clears when pressing Play or moving the Cursor to a new location, that’s why we hear a delay. It starts processing the incoming signal until the X samples set by the AG buffer are filled, then sends the oldest processed data to the output while continuing to process the new incoming data. It just does this like a continuous stream.

Thanks Louis. I’m very happy to finally be understanding this thing.

I feel like ASIO Guard was also invented to help with recording such that you can keep your real time buffer size low… but maybe that can just be seen as a benefit of all the attention put on creating as much headroom as possible to make things easier on your computer.

1 Like

Thanks a lot, Louis_R! The workaround with Audio Connections has solved the issue.

It is the very same i3 that worked flawlessly with Cubase 11. :thinking: I would never set my buffer higher than 64 (for live recording) and 1024 (for production). Moreover, I would never need to enable the ASIO Guard. I would have thought that a newer Cubase version would always be faster, less power/CPU-consuming, etc.

This is rocket science to me… I tried to read the thread 2 times, but got even more confused. :exploding_head: The main takeaways - please correct if I missed the point - are that 1) I should keep ASIO Guard enabled all the time, 2) I should increase the buffer if dropouts or clicks reappear. The thing is that I can’t go above 1024 as this is the maximum.
The maximum buffer size

Just two actually: the Focusrite driver and the Generic ASIO driver. (I guess the generic driver was automatically installed by some of the music apps.)

I’m sorry to hear that.
A lot of people have been experiencing performance issue since Cubase 12 was released, with the same settings compared to Cubase 11, but the developers have put a lot of effort to fix the issue within the next few maintenance updates. Are you sure you have the latest version installed ?

Oh, yeah. I’m sorry if this seems confusing, but the second sentence was about the latency of instruments / monitored tracks. ASIO-Guard indeed does not add any latency to those, they are processed with the real-time path instead, and you only hear the Input and Output Latency which values are shown in the Studio Setup dialog.

Try enabling AG and see how the meters behave when you monitor a single track (from an empty project). When not monitored the AG meter is mainly used and the Real-Time and Peak meters stay very low. On the other hand when you monitor the track, the AG meter drops and the other two increase, it’s the other way around.

However, when pressing Play, even if the track is monitored, you still experience the AG latency. Again, Real-Time and ASIO Guard work in parallel, they are two separate processing routes. The monitored track inputs or instruments take the Real-Time route so that you hear them with the lowest latency possible, and every track that is not monitored take the AG route in order to free up the Real-Time route. The latency is automatically calculated when you record so that everything lines up correctly, regardless of which route it takes.


If you are still experiencing dropouts with AG on and maximum buffer with the latest version of Cubase (12.0.50), then your issue is probably external to Cubase.

I was talking about this :