Understanding LINUX Audio

From ZynthianWiki
Revision as of 00:59, 30 January 2019 by Gmeader (talk | contribs) (add links)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Anyone intending to use GNU/Linux as a platform for audio or video production will benefit from understanding the primary Linux sound sub-systems, their purposes and limitations.

1 ALSA

ALSA, the Advanced Linux Sound Architecture, is a collection of drivers and libraries that provide Linux with audio and MIDI support for onboard, PCI, and USB audio hardware.

ALSA alone is insufficient for most AV production tasks because only one application can access an ALSA device at any one time. JACK and Pulseaudio were created mainly to overcome this restriction although they target different use cases.

2 JACK

The JACK Audio Connection Kit is a program (jackd aka the JACK server) and a protocol/API that enables the connection of a number of different applications to an audio device as well as allowing them to share audio and/or MIDI data between themselves. JACK applications may be connected on the same machine or remotely over a network. Think of JACK as a virtual audio patch panel, like on a physical mixing desk. While making these connections is not always automatic, the JACK system provides unparalleled flexibility for combining different tools in whatever way you wish. JACK has become the pro-audio application interconnection standard under GNU/Linux and is becoming increasingly popular on other platforms.

3 PulseAudio

PulseAudio (PA) is a sound server which, like JACK, runs on top of ALSA to provide functions such as allowing more than one application to use an ALSA device simultaneously. Pulse is targeted at regular desktop and mobile users rather than low-latency audio production.