Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
JACK_IODELAY(1)		    General Commands Manual	       JACK_IODELAY(1)

       jack_iodelay - JACK toolkit client to measure roundtrip latency


       jack_iodelay  will  create one input and	one output port, and then mea-
       sures the latency (signal delay)	between	them. For this	to  work,  the
       output port must	be connected to	its input port.	The measurement	is ac-
       curate 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 correspond-
       ing 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 la-
       tency it	has detected. This will	include	the JACK period	length in  ad-
       dition  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 la-

       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

       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 distrib-
       uted between the	input and output parts of  your	 audio	hardware  (ex-
       tremely 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.

       Originally  written  in	C++  by	 Fons Adriensen, ported	to C by	Torben

0-125-0rc1			  August 2020		       JACK_IODELAY(1)


Want to link to this manual page? Use this URL:

home | help