I'm confused about latency
Alexandre Bique <[email protected]> Thu, 4 Apr 2019 18:19:50 +0200
| Newsgroups | gmane.comp.audio.jackit |
|---|---|
| Message-ID | <CAP737oJTCaJF0Lav8BHHkxG2bgy1fYgBZGHVAmyCx9AW_g1oeQ@mail.gmail.com> |
Hi, I've been reading the code of Ableon's LinkHut's jack backend. https://github.com/Ableton/link/blob/master/examples/linkaudio/AudioPlatform_Jack.hpp https://github.com/Ableton/link/blob/master/examples/linkaudio/AudioPlatform_Jack.cpp 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