JACK (JACK Audio Connection Kit) and related tools

Vicente González Ruiz - Depto Informática - UAL

October 12, 2023

Figure 1: The Linux Audio (problably partial) Stack.

Like PulseAudio, JACK (JACK Audio Connection Kit) [1] is sound server that proxies between the audio applications (that must use JACK) and ALSA. JACK is the right choice if latency is important for you because it can be configured. Another interesting feature of JACK is that allows to define the connections (audio flows) between JACK-client applications (like in a real mixer desk). Finally, if you use MIDI apps and/or MIDI hardware, rely on JACK.

All the functionality of JACK can be get through running QjackCtl:

qjackctl &

that is a GUI for configuring the JACK server parameters and define the audio flows. Usually, the following options are available:

  1. Start: the server.
  2. Stop: the server.
  3. Quit: kill the server.
  4. Messages: from the server.
  5. Session: show/hide the session manager window.
  6. Setup: the server.
  7. Connect: the audio applications. Notice that all connections made in the Connections interface are kept as long you don’t power-cycle the JACK server (jackd). That is, all connections will be lost when the JACK server or any of the client application programs are closed or terminated.
  8. Patchbay: will keep all declared connections automatically, as long as QjackCtl is kept alive. Moreover, you can declare typical connection configuration that are carried out when the related clients are executed.
  9. Play: start transport timming events.
  10. Pause: stop transport timming events.
  11. Forward: transport timming events.
  12. Backward: transport timming event.
  13. Rewind: transport timming event.

0.1 Resources

Bibliography

[1]   Stéphane Letz, Yann Orlarey, and Dominique Fober. Jack audio server for multi-processor machines. In International Computer Music Conference, pages 1–4, 2005.