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:
Start: the server.
Stop: the server.
Quit: kill the server.
Messages: from the server.
Session: show/hide the session manager window.
Setup: the server.
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.
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.
[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.