Page 1 of 1

What are your round trip latencies?

Posted: Mon Nov 27, 2023 4:25 pm
by magill

I am currently using rather old M-audio Fast Track mk2 and I'm wondering if modern interfaces can deliver much smaller hardware latency.
My device is adding around 6ms of hardware delay. Is it much?

Here are my measurements for different buffer settings with jack_iodelay at 48000 sample rate:

48 7.9ms (the lowest my card can go)
64 8.6ms
96 8.9ms (best compromise between latency and reliability)
128 11.3ms

What are your latencies measured by jack_iodelay and with similar settings?


Re: What are your round trip latencies?

Posted: Tue Nov 28, 2023 4:45 pm
by autostatic
magill wrote: Mon Nov 27, 2023 4:25 pm

I am currently using rather old M-audio Fast Track mk2 and I'm wondering if modern interfaces can deliver much smaller hardware latency.
My device is adding around 6ms of hardware delay. Is it much?

That's quite a lot, my interface (RME Babyface from 2014) has around 2ms of hardware latency. But how are you calculating your hardware delay? It should be extra loopback latency/sample rate.

magill wrote: Mon Nov 27, 2023 4:25 pm

What are your latencies measured by jack_iodelay and with similar settings?

16/3 - 3.8ms (unusable though on my current machine)
32/3 - 6ms
48/2 - 6.2ms
48/3 - 5.8ms
64/3 - 7.2ms
96/2 - 9.6ms
96/3 - 9.9ms
128/3 - 12.5ms

This is with Jack1.


Re: What are your round trip latencies?

Posted: Tue Nov 28, 2023 9:25 pm
by magill
autostatic wrote: Tue Nov 28, 2023 4:45 pm

But how are you calculating your hardware delay?

It would roughly be reported latency (in reaper or qjackctl) subtracted from what jack_iodelay shows. Wouldn't it?

It's interesting how your latency is lower at 48/3 Vs 48/2. I'm using pipewire so there isn't any way to change buffer number (that would impact jack run apps) but I think I might try that with plain jack.

And just curious. Any reasons to use jack1?


Re: What are your round trip latencies?

Posted: Wed Nov 29, 2023 8:31 pm
by autostatic
magill wrote: Tue Nov 28, 2023 9:25 pm
autostatic wrote: Tue Nov 28, 2023 4:45 pm

But how are you calculating your hardware delay?

It would roughly be reported latency (in reaper or qjackctl) subtracted from what jack_iodelay shows. Wouldn't it?

Afaik USB audio interfaces add a period of latency to the chain so the value you're subtracting is not the real world latency. Explained more in detail here: https://wiki.linuxaudio.org/wiki/jack_l ... d_analysis

In my case jack_iodelay reports a total roundtrip latency of 12.524ms with an extra loopback latency of 89 frames when using 128 frames period/3 periods buffer at 48kHz. This is with an USB device so system latency is ((1+3) * 128) / 48000 = 10.6666ms
The extra loopback latency is 89/48000 = 1.854ms
10.666ms + 1.854ms = 12.52ms

magill wrote: Tue Nov 28, 2023 9:25 pm

It's interesting how your latency is lower at 48/3 Vs 48/2. I'm using pipewire so there isn't any way to change buffer number (that would impact jack run apps) but I think I might try that with plain jack.

That surprised me also, so I tested again.
48/2 - 5.858ms
48/3 - 5.941ms

That's more consistent.

magill wrote: Tue Nov 28, 2023 9:25 pm

And just curious. Any reasons to use jack1?

I don't use JACK myself, installed it just to check out jack_iodelay with my setup. And Debian 12 happens to install JACK1 with apt install jackd.


Re: What are your round trip latencies?

Posted: Thu Nov 30, 2023 11:21 pm
by magill
autostatic wrote: Wed Nov 29, 2023 8:31 pm

Afaik USB audio interfaces add a period of latency to the chain so the value you're subtracting is not the real world latency. Explained more in detail here: https://wiki.linuxaudio.org/wiki/jack_l ... d_analysis

In my case jack_iodelay reports a total roundtrip latency of 12.524ms with an extra loopback latency of 89 frames when using 128 frames period/3 periods buffer at 48kHz. This is with an USB device so system latency is ((1+3) * 128) / 48000 = 10.6666ms
The extra loopback latency is 89/48000 = 1.854ms
10.666ms + 1.854ms = 12.52ms

Yes, I'm aware of that and it has some explanation of that for pipewire side of things here: https://pipewire.pages.freedesktop.org/ ... properties. I have minimal understanding of all of this but I'm guessing 48 or 96 work better as there is no need for extra loopback with these frames/period settings, I think. Would that refer to jack's synchronous mode?

I was mostly interested in real life latency performance and your numbers give me some clue. Cheers!

And plain alsa is definitely performs best but current pipewiere, at least in my setup, performs better than jack (less xruns and lower usable latency) and it is so convenient.