External hardware bus latency compensation

From the ardour 2.8.4 announcement:

PortInsert GUIs now have a builtin hardware latency "ping" tester, modelled on Fons Adriennsen's jdelay. This can accurately measure the roundtrip signal latency of your insert and sets the latency that JACK sees. You can now use external h/w processing and get sample-accurate latency compensation within Ardour.
This gave me the idea that I could use an external reverb, connected with an insert in the pre-fader section of a bus. So I tried.

I connected the reverb, put it in to 0% wet mix (PCM91) so I could use the Insert GUI to measure the latency of the soundcard and the PCM91 unit at once.

I also measured the round-trip latency before starting ardour (jdelay), divided this number by two and filled it in the Qjackctl ¨input latency¨ and ¨output latency¨ boxes. As far as I know this is the correct way to enable sample-level hardware latency compensation with the freebob driver.

With all these given measurements the latency still wasn´t correct, because a parallel bus with the same signal as the insert bus gave me this typical effect of comb filtering, or just an incorrect delay/latency setting:)

Did I interpret the ardour 2.8.4 announcement wrong? If I did, what exactly is compensated for?

Sorry for starting a new thread about this, I thought it would be handy to have one specific question answered by one clear answer for everyone to see.

Do me a favor, try it on a track instead of a bus?

You can just duplicate the region to another track to get one that would ahve wet and one that would have dry signal. Then see if mixing those two together works for you.


I can assume that would possibly work, and if it worked, I would be very neat for compressors and other insert-type hardware processing. How could this be handy for reverb? What´s really the ¨correct¨ way to use an external reverb?

By the way, I just recorded the reverb and put the ¨artificial latency¨ plugin on the reverb track, with the calculated latency. This works (maybe even better because you can use exporting in freewheel-mode). Still, would be nice to have external reverb latency-compensated in a bus:)


It seems you are saying that using two tracks to mix reverb, one with a dry signal and one with an identical wet signal, would not be useful. This is actually a very common way to mix reverb, and it should sound fine.

I know you can just use a reverb track, but I want to be able to fiddle with the settings of the reverb while playing, latency compensated on a bus. Is this possible?

@roaldz: ardour has no latency compensation on busses at this time.

Hi Paul,

You mentioned before you had some early code for this, have you make any progress? Is it worth setting up a bug to attract sponsorship?