NAME¶
jack_iodelay - JACK toolkit client to measure roundtrip latency
SYNOPSIS¶
jack_iodelay
DESCRIPTION¶
jack_iodelay will create one input and one output port, and then measures
the latency (signal delay) between them. For this to work, the output port
must be connected to its input port. The measurement is accurate to a
resolution of greater than 1 sample.
The expected use is to connect jack_iodelay's output port to a hardware playback
port, then use a physical loopback cable from the corresponding hardware
output connector to an input connector, and to connect that corresponding
hardware capture port to jack_iodelay's input port. This creates a roundtrip
that goes through any analog-to-digital or digital-converters that are present
in the audio hardware.
Although the hardware loopback latency is the expected use, it is also possible
to use jack_iodelay to measure the latency along any fully connected signal
path, such as those involving other JACK clients.
Once jack_iodelay completes its measurement it will print the total latency it
has detected. This will include the JACK period length in addition to any
other latency in the signal path. It will continue to print the value every
0.5 seconds or so so that if you wish you can vary aspects of the signal path
to see their effect on the measured latency.
If no incoming signal is detected from the input port, jack_iodelay will print
Signal below threshold... .
every second until this changes (e.g. until you establish the correct
connections).
To use the value measured by jack_iodelay with the -I and -O arguments of a JACK
backend (also called Input Latency and Output Latency in the setup dialog of
qjackctl), you must subtract the JACK period size from the result. Then, if
you believe that the latency is equally distributed between the input and
output parts of your audio hardware (extremely likely), divide the result by
two and use that for input and/or output latency value. Doing this measurement
will enable JACK clients that use the JACK latency API to accurately
position/delay audio to keep signals synchronized even when there are inherent
delays in the end-to-end signal pathways.
AUTHOR¶
Originally written in C++ by Fons Adriensen, ported to C by Torben Hohn.