ASIO Latency Compensation vs Add Latency to MIDI-Thru Processing

Does anyone know what exactly do those two options?

ASIO Latency Compensation
I was able to visually see what is “ASIO Latency Compensation” doing, by doing this:

  • Setting the buffers of my audio interface to the maximum, so I get these latency values:
    Input Latency: 49.751ms
    Output Latency: 49.546ms
  • Creating two midi tracks assigned to the same midi input, one of them with the ASIO latency Compensation enabled and the other disabled.
  • Recording same midi in both tracks at the same time

I saw that the track with the “ASIO Latency Compensation” enabled is recording the midi notes 49ms after (not before) the one without that option enabled.

So, ASIO Latency Compensation compensates all the recorded notes adding (and not substracting) the exact value of the “Output Latency” of the audio card.

I don’t understand the purpose of this feature, let’s see for example this scenario:

  • I created a manually edited midi track that plays a “drum bass” exactly in the first beat of each bar
  • I record a second midi track while playing the drum bass
  • I play a note in my midi keyboard when I hear the drum bass

So, I’m going to hear the drum bass 49ms after cubase find the note in the midi track, so I’m going play the note in the keyboard 49ms later, if I have the “ASIO Latency Compensation Enabled”, cubase is going to record the note 49ms later.

So, at the end my recorded note will have an offset of 98ms (49*2), so why adding latency to compensate? Wouldn’t be better to subtract that latency?. If I play 49ms later because the sound of the drum is heard 49ms later, the right way to compensate is to subtract those 49ms, doesn’t it?

Add Latency to MIDI-Thru Processing
This option in the preferences seems to be globally applied to all MIDI tracks, so I don’t know how to tests what it’s really doing.

I don’t fully understand the documentation:
If you set the audio buffer size to a high value, and you play an arpeggiator in real time, for example, the MIDI notes are output with an increased latency.If you consequently adapt your playing to the output latency, the notes are recorded even later. […] Add Latency to MIDI-Thru Processing[ adds a regular latency to each note that is played in real time

Again adding instead of subtracting latency? If I have a large buffer, I heard the notes of my tracks with a delay, so if I play when I heard the notes of the other tracks, I’m playing later, and I’m going to hear my played notes even later, why the solution is adding more latency instead of subtracting?

This option also adds the exact value of the Oputput Latency of the Audio Card?
Only in real time or it adds that offset to the recorded notes like “ASIO Latency Compensation”?

So, If I activate both options “ASIO Latency Compensation” and “Add Latency to MIDI-Thru Processing” each option will add the Ouput Lantecy of the audio card, so the notes will be offset two times?

Thanks,
Pedro

I have these kind of same doubts! I meant, it’s a little bit confusing right Steiberg, come on?
please, gives us a light of what to do in theses possible scenarios like

  • Recording Audio and Controlling external ou internal midi devices,
  • Recording audio from a midi file controlling external synced device like a Drum Machine, an a arpeggiator, or a sequence step…
  • Recording audio monitoring thru cabase with and without plugins inserted.
  • Recording audio with interface direct monitoring, without listen to cubase monitoring.
    and maybe other possibles scenarios too