ASIO Latency Compensation Problems

I now see that only the plugin delays on input tracks are impacted. That makes a lot more sense! https://www.steinberg.net/forums/viewtopic.php?f=253&t=111022&p=626711#p626711 Sorry! :blush:

In conclusion(?)

Page 239 of the CUBASE PRO 8.5 Operation Manual says:
“NOTE
If you perform a live recording on a VST instrument, you usually compensate the
latency of the audio card by playing earlier. In consequence, the timestamps are
recorded too early. If you activate the ASIO Latency Compensation button on the
track list, all recorded events are moved by the current latency setting.”

Cubase 8.5 and 9.0.10 really do the following: They delay MIDI note inputs from keyboards/controllers by the reported input latency of the audio interface [for both recording and internal virtual instrument (VSTi) triggering]. The monitored audio outputs of those VSTis are further delayed by the output latency of the audio interface. So, assuming the performer is monitoring with headphones, the perceived delay between pressing the key/pad is equal to the sum of the audio interface’s reported input latency and its actual output latency. The state of the ASIO Latency Compensation (ALC) control does not affect this.

When ALC is active on an instrument track (it has no effect on other MIDI tracks), Cubase will delay the recording of the MIDI note on that track by the reported output latency of the audio interface. The performer will be trying to “compensate” for his/her perceived latency (the sum of the audio interface’s reported input latency and its actual output latency). If he/she manages to do that, audio from subsequent playback of that VSTi will precede the audio from other playback tracks by the input latency of the audio interface (assuming the interface reported input and output latencies are correct). For ALC to do what the manual says it should, MIDI note recording on VSTi tracks should be delayed by an additional amount equal to the reported input latency of the audio interface.

IMHO changing ALC to perform as follows would be far more useful than just fixing it to reflect what is alluded to in the manual. When ALC is active, MIDI inputs should be delayed by the reported input latency of the audio interface. This would help keep them synchronized with the monitoring and recording of other inputs. This would help keep the monitoring and recording of external instruments triggered by those outputs synchronized with other inputs. Everything would remain synchronized on subsequent playback as well.

Cubase now always adds monitoring latency to MIDI inputs from keyboards/controllers to help keep everything synchronized for recording and monitoring. Performers wishing to minimize their monitoring latency from the instruments which those inputs trigger might like to have the option of preventing Cubase from adding that latency. De-activating ALC on selected MIDI/VSTi tracks could (should?) do that! Less monitoring latency would make it easier for performers that wish to “compensate” for it themselves to do so (as suggested by Novikthewise as well as the Reason and Ableton operator manuals). With VSTi’s they would still be “compensating” for the MIDI input latency and the output latency of the audio interface, so Cubase should still delay MIDI recording on those tracks by the interface’s reported output latency.

It should be noted that the efficacy of all of Cubase’s latency compensation schemes/activities rely on the accurate reporting of both input and output latencies by the audio interface. Some, like the 1st generation Focusrite Scarlett 6i6, report the sum of input and output latencies correctly, but not the individual latencies. Since, unlike Reaper, Cubase does not allow the setting of separate input and output latencies for those that don’t, this causes MIDI timing problems. :slight_smile:


Here’s a more concise description of what I did in this thread and why I did it. Hopefully it will help those who wishing to achieve a better understand of these issues do so.

The test setup can provide relative timing information with sample period accuracy. It was used in this thread to help me (and hopefully some others) understand what MIDI ASIO Latency Compensation really does in Cubase. It can also be used to measure/compare the delay of tracks. With a slight modification (playing back tracks while recording the associated loopbacks), it can be used to determine the accuracy of the compensation that Cubase applies to adjust record timings to accommodate those delays. (https://www.steinberg.net/forums/viewtopic.php?f=253&t=111022 shows that procedure. (Note that this forum rather annoyingly opens URLs onto the source’s web page – so it’s best to right click on the link and open it in a new browser tab or window.)

The following assumes that Novikthewise, other than using a different version of Cubase (9 vs. 8.5), a different VSTi, and a different audio interface, followed the same procedures that I did for testing/demonstration.
My results with ALC OFF are here: https://www.steinberg.net/forums/download/file.php?id=19479
My results with ALC ON are here: https://www.steinberg.net/forums/download/file.php?id=19478
Novikthewise’s with ALC OFF and on are here: https://www.steinberg.net/forums/download/file.php?id=20640

Tracks 1 & 7 are recordings of waveforms produced by microphones tapping keys on MIDI keyboard/controllers. Those waveforms were monitored while they were being recorded onto the tracks. The input latency of the audio interface delayed Cubase’s acquisition (and hence recording) of the waveforms. The monitoring of the waveforms (via the track 1 & 7 interface outputs) was further delayed by the output latency of the audio interface. So, assuming headphones were used, the monitored sounds of the tapping (on tracks 1 & 7) would be delayed by the sum of the audio interface’s input and output latencies (its Round-Trip Latency or RTL) from the tapping. They would also be delayed by the interface’s output latency from their recordings.

The Track 1 & 7 interface outputs were externally connected to interface inputs for recording on tracks 2 & 8. The interface’s input latency delayed Cubase’s acquisition (and hence recording) of those monitored waveforms.

The interface’s output latency delayed the monitored outputs with respect to their recordings (on tracks 1 & 7). The external output to input connections at the interface added no latency. The input latency of the interface delayed the recording of the monitored waveforms. So, the delay from the microphone recordings (tracks 1 & 7) to their monitored (looped back) recordings (tracks 2 & 8) is the interface’s RTL (just like the latency of the monitored tapping sounds).

As stated previously, Cubase’s acquisition of MIDI notes caused by the microphone taps on the MIDI keyboard/controller keys were delayed by the keyboard/controller latencies. Since these delays are typically about several milliseconds (ms), they’re much shorter than the audio interface’s input latency in these tests. If Cubase didn’t delay the recording of these notes, their recordings (tracks 3 and 9) would precede the microphone recordings (tracks 1 & 7) by the difference in those two latencies. Cubase doesn’t know the MIDI latency so it can’t automatically adjust MIDI note recordings for that. But, since the audio interface reports its input latency, it can adjust for that (to the accuracy of the report). The delay between the microphone recordings (tracks 1 & 7) and the MIDI note recordings (tracks 3 & 9 respectively) was several ms (the MIDI latency) - showing that Cubase did indeed delay the MIDI input by the reported input latency of the interface. A simple way to demonstrate/prove this is to use a microphone to tap a key on a keyboard/controller and record the resulting microphone (track 1) and MIDI (track 2) outputs at two different interface buffer sizes. The differences in the delays shown in the recordings of tracks 1 & 2 will be equal to the difference in the reported interface input latencies shown for the two buffer sizes (shown by Cubase in the VST Audio Device setup window).

In addition to recording the MIDI notes on tracks 3 & 9, Cubase used the notes to trigger internal virtual instruments (VSTis) on tracks 5 & 11. The monitored VSTi audio outputs (tracks 5 & 11) were externally connected to interface inputs for recording on tracks 6 & 12. The monitored VSTi audio outputs (tracks 5 & 11) were delayed by the output latency of the audio interface. Their looped back recordings (tracks 6 & 12) were further delayed by the input latency of the audio interface.

My test results show that the looped back microphone recordings (track 2) and the looped back VSTi recordings (track6) were only offset several ms from each other. Both tracks were delayed by the audio interface’s RTL. With respect to the tap events, the audio interface’s input latency further delayed the recorded loop back microphone waveforms (track 2). So, Cubase apparently delayed the VSTi triggering by the reported input latency of the interface (as it did with the MIDI note recording).

The only notable difference in my two test results is that when MIDI ASIO Latency Compensation (ALC) was active, the recording of the MIDI note on the VSTi track experienced an additional delay equal to the reported output latency of the audio interface.

Novikthewise showed significantly different results with respect to the looped back VSTi audio recording on both tracks 6 (ALC “inactive”) and track 12 (ALC “active”). In his “inactive” case the looped back VSTi recording preceded the looped back microphone recording by approximately 18.4 ms. In the “active” case the VSTi loopback preceded the microphone loopback by approximately 48.4 ms (half the interface’s RTL). Yesterday I installed the trial version of Cubase 9.0.10 to determine why. That version of Cubase apparently has serious problems with delay instability in its triggering of VSTi’s form keyboard/controllers. I’ll look into that further and post another bug report to hopefully get that fixed too. :slight_smile:

unbelievable :unamused:
now please can someone close this thread allready because its complete nonsense

I have to ask. Apparently you did not see the VSTi triggering problem demonstrated in your posted test results. Can you see it now? If not, how hard are you trying?

You can find more details about that problem here: https://www.steinberg.net/forums/viewtopic.php?f=253&t=115186 :slight_smile:

Explain to me: How is any of this relevant in a real project?

ONCE AGAIN. YOUR TEST USES CUBASE IN A WAY IT IS NOT DESIGNED FOR!!!
No One who uses Cubase the way it is designed for would run into any of your “Issues”. Because no one would have the idea of loop back record the monitoring signal of your VST instrument.

The only explanation to me is that you have absolutely no clue how to really work with cubase.
That would also explain why you havent answered my simple question yet

Also you mix things up all the time. Contradict you statements. Name things wrong. like in your new thread. In the very first sentence you talk about triggering external instruments. But in your test you use a VST instrument.

Either start testing stuff that is actually relevant for a proper use of Cubase or just stop posting bug reports that are meaningless

The relevancy of my suggestion regarding MIDI ASIO Latency Compensation was explained in my March 22nd post:

Although you apparently believe that would not be worthwhile, others may feel otherwise. http://forum.coockos.com/showpost.php?p=1803053&postcount=5 (You need to remove the first “o” in “coockos” to un-censor the URL) Many are apparently even seeking out relatively expensive audio interfaces in their attempts to minimize their monitoring latency. https://www.gearslutz.com/board/music-computers/618474-audio-interface-low-latency-performance-data-base.html Note that the audio interface latency now always added to MIDI inputs by Cubase can contribute quite significantly to overall monitoring latency.

That’s irrelevant. Again, as explained in the March 22, 2017 post:

Note that your use of it also quite effectively demonstrated the VSTi timing problem with Cubase 9 documented at: https://www.steinberg.net/forums/viewtopic.php?f=253&t=115186 Apparently you were (still are?!) unaware of this problem!

I’m getting there! But please note that my primary goal is to help Cubase’s developers understand and fix the software problems as well as (hopefully) improve Cubase’s performance and utility for its real users (including my son). That’s why I took the time to submit these bug reports and plan to do so with other bugs which I’ve discovered in that process. I’ve had over 40 years of experience doing this type of thing.

From my March 17, 2017 post:



Back to the current post

Thanks for catching the error in that sentence – I fixed it. If you (or anyone else) have noticed other errors and/or inconsistencies, please point them out to and I’ll fix and/or clarify as necessary.

I’m posting things that should be helpful to the software developers for product debugging and improvement. My understanding that doing so through the forum is the correct way to do that. https://www.steinberg.net/forums/viewtopic.php?f=253&t=107133 Do you think otherwise?

All irrelevant.
You cannot use something the wrong way produce strange results in the process and complain about it afterwards.

Your inability to understand issues doesn’t make them irrelevant. Saying that just demonstrates your inabilities and that you have nothing worthwhile to contribute to their discussion! Is this typical of your participation in forums? :wink:

https://www.steinberg.net/forums/viewtopic.php?t=111073#p626103
in this post i showed you that ALC on midi works exactly as expected. It delayed midi by the outpul latency and the notes were mostly correct with a natural human variance. This is the purpose of this function in C8 and C9 and it works as advertised

You still believe that midi has to be compensated for the input latency of your audio interface. It doesn’t!!! Only for the output latency
Lets say you tap in the midi notes on the cubase click. The Click will be delayed by the drivers output latency so you will press the button too late by exactly this latency in reference to cubase internal time code. Now the audiorecording with your microphon will also be late by the output latency. The Audio Recording is than even further delayed by the input latency of your driver. Cubase now has to place that audio recording earlier in the timeline by the RTL.
Midi like i said is independend from the asio driver. We have tapped in the midi note late by the output latency because the click was allready delayed when we monitored it. PDC will add even more output latency so that this also has to be accounted for.
If the midi note would be compensated for the Input latency as well the notes would be placed too early. More precisely too early by the Input latency
Keep in mind that TRL compensation for the recording only effects the recorded media but not the monitoring exept PDC. thats why ALC has no effect during monitoring of your vst.
If you now play an instrument at high latencies on your cubase click you will have the playback delay on the click wich is your output latency. If you now tap on the click the audio of the instrument will be delayed by the output latency as well. That is difficult to play because the audio will be behind your click. by the output latency. Many people will than conpensate for that by pressing the button too early by the output latency to have the audio right on the click. And this is were ALC comes into play.

If you had used a plugin with latency (such as CurveEQ) rather than one that doesn’t (REVerence) your demonstration might have seemed more credible (but no less contrived). Why did you do that? :open_mouth:

Because it does add latency. You can give a crap about the plugin manager regarding latency indications. Why do you think the audio was shifted when i turned off the function if Reverence wouldn’t add latency by itself??

But interesting you skipped the post i actually referred to and instead came up with this one regarding record latency with plugins inserted in the input channels. Why did you do that? It has nothing to do with what i explained about ALC on Midi

you first approved this yourself when i first mentioned this and it made alot more sense to you. And now you desperately try to proof i am wrong?

I contributed with explanations of ALC and adjust for record latency with pictures.
You said you are no expert nor a musician nor an audio engineer who works with Cubase on a regular basis. You ask to be corrected when your conclusions are flawed or wrong. I tried but if you don’t believe me its not my problem.

Here is what i think. You think you made a great discovery here and you actually don’t want to understand it or beeing corrected for even you claim you do. What you want is to get credit for it but unfortunately you don’t get the credit you think you deserve. In fact i am the only person than actually corresponded with you here. Unfortuanely i don’t say what you want to hear. Again not my problem.

Seriously?! :open_mouth: The audio was delayed because you configured REVerence to add some “Pre-Delay”!


Unlike some other plugins, REVerence apparently doesn’t have any processing latency (“plugin delay”). It’s the processing latency (“plugin delay”) that gets compensated for by plugin delay compensation (PDC). The manual and you(?) say that “Adjust for Record Latency” should remove that “plugin delay” when recording too. In either case I don’t think most folks would be very happy if delays that they intentionally added were automatically removed by Cubase. :wink: It’s now even more clear to me that the state of the “Adjust for Record Latency” control has no effect – as originally claimed. https://www.steinberg.net/forums/viewtopic.php?f=253&t=111022

I now know that I was wrong. I can’t think of any use for the “Adjust for Record Latency” function as it is described in the manual. Can you (or anyone)?

With all due respect, you’re posts have clearly demonstrated that you aren’t nearly as knowledgeable on these matters as you think (and/or wish others too think/believe). However, I do appreciate your ALC pictures - which nicely demonstrated Cubase’s problems with VSTi triggering jitter. (And I did give you credit for providing them – thanks again!) https://www.steinberg.net/forums/viewtopic.php?f=198&t=115186 But, it appears to me that your pictures regarding “Record Latency Compensation” were just misleading contrived nonsense! :open_mouth: https://www.steinberg.net/forums/viewtopic.php?f=198&t=111073&start=25#p629866

Haha. Seriously?.
If that shift would have been created by the pre-delay settings of Reverence than this shift would be in both pictures because the function compensates for plugin processing delay and not for pre delay settings of a reverb.
And for the record. I did set the Reverence to 100% dry. when i tested it. Why don’t you retry the test yourself Mister Super Engineer.?`maybe it becomes clearer to you because you obviously need the experience to even judge how things work.


You still refer to the wrong pictures. I dont talk about your nonsens test i made. I talked about the pictures i linked that explain when ALC is to be used and when it isn’t. You still don’t understand that midi ALC works exactly as intended. Even your starting post shows this. You don’t understand that ALC has only to compensate for the output latency because for VST Instruments there is no input latency to be compensated for. You also still seem not to understand that ALC is not for a technical compensation but for compensating the human nature of pressing the buttons too early. Exactly this i showed in my pictures i linked above
But isn’t it interesting that your topics have been moved to the Steinberg lounge.? So i am not the only one thinking you are dead wrong about this.

Word. :wink:

I don’t know where you found the time to even do the testing you did.

When recording/monitoring without plugin delays, I agree that both the click track and VSTi audio outputs will be physically delayed by the output latency of audio interface. If the software functions properly, VSTi audio outputs will also be delayed by the reported input latency of the audio interface - right? So, as you have pointed out, ALC would seem to be appropriate for playing to (right on) the click. But it wouldn’t be for what the manual claims (from Page 239 of the CUBASE PRO 8.5 Operation Manual):
“NOTE
If you perform a live recording on a VST instrument, you usually compensate the
latency of the audio card by playing earlier. In consequence, the timestamps are
recorded too early. If you activate the ASIO Latency Compensation button on the
track list, all recorded events are moved by the current latency setting.”
:slight_smile:

I apologize for my ignorance and incorrect statements regarding his Record Latency Compensation tests. For details, see https://www.steinberg.net/forums/viewtopic.php?f=198&t=111022#p630776

Why should the VSTi beeing delayed by the input latency? Only Audio that comes from the “inputs” of your hardware will be delayed by the input latency.

ALC on Instruments does exactly what i showed you in the pictures “Latency4.png” “Latency5.png” and “Latency6” and it works exactly the way it should.

Here’s what I actually posted - not what you quoted here :exclamation:



Cubase delays the recording of MIDI by the reported input latency of the audio interface to keep it synchronized with other audio inputs being recorded - right? It should also delay the triggering of the VSTi by that reported input latency to keep its audio output synchronized with other audio outputs when recording/monitoring - right? But, it would be nice to give users the option of disabling that added delay, wouldn’t it? :question:

If ALC’s purpose is to compensate for users playing to the click rather than the VSTi audio output as you seem to be claiming, then shouldn’t it’s description in the manual be changed to reflect that? :slight_smile:

What’s your relationship with Steinberg :question:

You have the wrong idea about how record latency compensation works. Plugin delay compensation works in the opposite direction than record delay compensation. PDC delayes the playback of the project further by the highest reported track latency while all other tracks are delayed by the difference to that track as well to match that latency.
Record latency works in the other direction. Due to the fact you play against the output latency and the recorded audio is even further delayed by the input latency it is recorded too late. It has to be moved back to match the intended time position in the project. Cubase does that by moving the audio to the left by a whole roundtrip. Midi has no input latency as audio does. If you would move it back a whole roundtrip midi events would be positioned too early in the project.

So its not the midi events or the audio from the instrument that has to be matched with the audio recording. In fact both types of recording are moved back to match the project time code as they were initially recorded too late. Audio by a rtl and midi just by the output latency since it has no input latency and therefore was recorded earlier than the audio. Your test you made purely used live monitoring that was looped back. Since Cubase will not compensate live monitoring this test is not suited to judge how cubase really compensates for latency.
cubase doesn’t compensate live monitoring as it is realtime dependend. And i still think you don’t understand the nature of the ALC function you can switch on and off on instrument tracks as this function has nothing to do with the overall latency compensation for recording.

this is not what i said. Ok let me try again as you really seem to have a problem understanding this.
If you have a high latency setting the monitored audio of your instrument will be noticably delayed when you hit the key right?
Now imagine you play to the click. If you hit the key right on the click the monitored audiosignal of your instrument will be delayed by the output latency right and is therefore behind the click by the output latency?. If you will hit the key on the click and you can handle that the corresponding audio is behind the click you will not need this function. I wrote that allready.

Many people have difficulties to play right on the click if the instruments audo is behind the click due to the high latency. You will tend to press the button before the click in order to have the live monitored audio of you instrument on the click. exactly what i showed in my pictures. If you managed to hit early enough to have the audio right on the click you pressed the button too early by the output latency. The midi notes now will be upfront. to correct that the ALC will move them to the right by the output latency.
Is this really so difficult?
My test show that this works exactly as it should. Don’t you see that?

Yes

No. If you are monitoring with headphones, you will hear the VSTi delayed from the click by the sum of the audio interface’s output latency, its reported input latency (if Cubase worked properly), your delay, the MIDI source/interface delay, Cubase’s MIDI detection/recognition delay, and the VSTi processing (plugin) delay.

No. You pressed it too early by the the sum of the audio interface’s output latency, its reported input latency (if Cubase worked properly), your delay, the MIDI source/interface delay, Cubase’s MIDI detection/recognition delay, and the VSTi processing (plugin) delay.

That’s the problem!

Good question!

No