Finally it's possible: Measuring latency of plugins


#1

Hey people,

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:
https://www.reaper.fm/reaplugs/

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:
https://2ndsenseaudio.com/plugins/
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.

Best,
Chris


About latency, plugins and windows
#2

Interesting, i was also looking to find out if there are plugins on the mastering level causing latency


#3

Ableton, Cubase and ProTools all display this automatically, just in case you own any of those.


#4

@brad do you think it’s worth to have this also build in cantabile? It would be a nice feature I think. And I think it could be quite easy to implement.


#5

As a rule of thumb, hard limiters, linear phase EQ and anything else with “look ahead” technology will induce latency. So especially mastering plugins, more than any other category.


#6

I don’t want to rely on a rule of thumb in that case. There are a lot of plugins that induce latency. A very heavy case f.e. is the TDR-series. Their plugins look great and some of them are free. But they add a huge amount of latency.

If there would be somewhere a little window where Cantabile shows that latency, it would be a nice add.


#7

I like numbers and data too, and I would welcome it. But at the same time I wonder what it really adds. As soon as you insert a plugin and hit a note on the keyboard you know whether or not it’s “too much” latency or not, and that point is different for everyone and even per sound. E.g. I use CLA Bass on my bass parts a lot and I can feel it gets a little sluggish but I can still live with it. I couldn’t use it on my main piano or on an organ though. And I could probably deal with way more latency on a pad sound. In that way, the actual number is quite irrelevant.


#8

I used to play organs in large churches, and the latency in all of them was so terrible that I learned to ignore it entirely and “play with my fingers rather than my ears”. Try it for a couple of years and you will never care about latency again! :wink:

Terry


#9

Hmmm - works when you’re the only show in town (church), but when trying to lock into a groove with your band, you ignore your ears at your peril (flying drumsticks)…


#10

@Torsten You learn to duck flying drumsticks with a flair and develop an adroit skill-set, but I agree.

Terry