in general I think we all try to keep the latencies as small as possible. So I was interested how much latency my effect-plugins add to the audio-engine. The only way that worked was setting up different audio-ports, record some audio, drag it into my DAW, zoom into the audio-file and try to see how much the waveforms differ. But this was very time consuming and also not very accurate. So today I investigated this topic a bit more and finally found a solution that works perfectly and I want to share that.
The heart of it is a ReaJS-Plugin. So you need the environment which you can download here:
After that you need the plugin, which you can download here:
LatencyCheck.zip (1.4 KB)
Move the folder inside the zip-file into the directory you installed the ReaPlugs to and into the subfolder JS/Effects/
Then start Cantabile and load the reajs-plugin. Inside the plugin go to “Load” and choose the LatencyChecker.
To make it more easy you need to edit the audio-ports of the plugin (right click on the plugin inside Cantabile and choose “Audio Ports”). Delete the right channel on the stereo output and the left channel on the stereo input. You can also just download the rack which should be ready to use:
LatencyChecker.cantabileRack (11.1 KB)
In this rack replace the TDR Nova with the plugin you want to test.
The only thing you now need to do is hit the Play-button inside Cantabile. Wait for a second and press the stop button. So what is happening here?
The plugin waits 0.5sec. and then sends an impulse on the left output and waits for it to come back on the right input channel. The impulse goes into the TDR Nova and the output is routed into the loopback-port of the rack, which is routed into the reajs-plugin again.
So, open the reajs again (if it’s not already open) and you’ll see the result under “samples waited”:
Here you see it says 443 samples. Now you need to convert that and you need to subtract the buffer-size of your audio engine. Here it’s 256 samples. So the result is 187 samples. Now you need to convert samples to milliseconds which depends on the sample-rate you are running. I run on 44.1kHz which leads to
1 sample = 0,0226757ms.
So: The plugin has a latency of 4,24ms. This is a lot!! But I discovered this behavior already a while ago. Other plugins like f.e. the 2SEq:
have 0ms latency. The result is 256.
To reset everything and do another test you need to restart Canabiles audio-engine. The “samples waited”-field will be zero-ed.
With this method you can also easily determine your roundtrip latency of your audio interface.
So! I hope I can help to sort some things out. I find this topic highly interesting and will do some checks on other plugins I do use all the time.