Hi,
I've been reading the code of Ableon's LinkHut's jack backend.
https://github.com/Ableton/link/blob/master/examples/linkaudio/AudioPlatfor…
https://github.com/Ableton/link/blob/master/examples/linkaudio/AudioPlatfor…
And I was quite surprised because I did not find any latency compensation there.
So for real-time beat time synchronization this is quite important right?
BTW, if any jack expert finds the time and motivation to fix the jack
back-end of Link's example that would be awesome and a great example.
Then I've read the documentation:
http://jackaudio.org/api/group__LatencyFunctions.html
And I am totally confused.
Why a latency range? What is the use case for it?
How is the application supposed to work with multiple inputs and
outputs having each a different latency range?
What's the point of a latency range? If you're concerned about the
shortest path and the longest path, why wouldn't you be concerned
about any path in between?
How to know at which time on a given a clock (CLOCK_REALTIME or
CLOCK_MONOTONIC) a sample in the current process block will be played
on the sound card's output?
I've tried with qjackctl to set the periods/buffer to 12 with 2048
samples per buffer at 44100 Hz which is about half a second of
latency. Do you manage to get the correct latency reported with those
settings? See
https://imgur.com/w45wsp8
Jack allows feedback routing, how do you deal with latency with such a graph?
I've been testing with Jack 1.9.12-8 on Archlinux and QJackCtl 0.5.6-1
Many thanks for your answer and your time,
Alexandre Bique