State of the Art: Linux Audio 2008
The demands of professional audio production require a different order of performance from a sound server. None of the servers mentioned above are capable of drop-out free performance under heavy resource demand—for example, multichannel recording with high sample rates and bit depths—and they cannot be considered suitable under pro-audio conditions. Fortunately, Linux has JACK, a truly professional-grade audio server and master transport system. If you plan on producing professional-quality audio with Linux sound and music software, you need to know JACK.
JACK development is steady and continues to expand the system's capabilities. JackMIDI is showing up in more applications, and the jackdmp Project points the way toward JACK's future on multiprocessor architectures. Current versions already run on OS X, and there's even been a successful port to Windows. Currently supported back ends now include ALSA, OSS, PulseAudio, FreeBob/FFADO (for FireWire devices) and CoreAudio (on OS X).
Erik de Castro Lopo has contributed some essential components to the Linux audio infrastructure. His libsndfile provides programmers with a comprehensive library for handling file I/O for a great variety of soundfile formats, and his libsamplerate has found broad acceptance as the preferred tool for high-quality sample rate conversion. These libraries relieve applications programmers from the burden of writing code for very common tasks, and both packages are common dependencies throughout the world of Linux audio software. I'm also happy to report that both libraries are currently maintained.
The sound-related software most familiar to typical users includes media players, games and audio communication devices. In each instance, the application itself does not handle audio directly, instead relying on the kernel's sound API (that is, ALSA). This reliance frees application developers to focus on features, rather than on how to interface with users' sound hardware.
Linux music players are a mixed blessing. For average users, programs such as Amarok, Banshee, Rhythmbox and the XMMS clan work well for playing most audio formats (MP3, Ogg, WAV, AIFF and so on). AlsaPlayer continues to provide a lighter-weight player, not so feature-rich but stable and JACK-savvy. JACK-awareness is one of my personal complaints with most of the current music players, but I have reason to hope that the major players will get it and at least provide a plugin for JACK connectivity. And, while I'm dreaming, I'd also like to see Linux media players adopt the JACK master control system. More typical wish lists include true gapless playback and support for huge collections. The development teams of the popular players are quite aware of these requests and are working to address them in future releases. As Figure 1 indicates, some developers are indeed moving forward.
Multimedia players, such as MPlayer and Xine, continue their development march forward. These projects are well established, and many users rely on them heavily for more than just DVD and video file playback. MPlayer (and its sister software MEncoder) is a veritable toolkit for a wide variety of video and audio tasks, and the Xine library is used by many other applications that need video capabilities. Both programs play a wide variety of video and audio formats, and both include hooks for user-friendly GUIs.
Alas, there is a snake in the grass in this field. Video players depend on codecs that provide support for the seemingly endless variety of video formats, and many popular formats are patent-encumbered. One immediate result of this situation is the difficulty or impossibility of including these codecs in a mainstream Linux distribution. Some distros simply point users to a repository where they can download the necessary packages, but it would, of course, be better if the codecs could be installed along with the players. However, until patent law reform takes place (in the US, at least), there can be no other way to supply the software.
Playback of encrypted DVDs also is problematic. It appears that the MPAA is no longer pursuing legal action against distribution of the DCSS software, but distribution vendors remain hesitant to include the software directly. Again, users typically are directed to a distribution point on the Internet where they can acquire the software they need to watch their legally purchased discs. Although these extra steps may seem trivial to seasoned users, they often are confusing and seem unnecessary to novices, especially when there is little or no understanding of the legal ramifications. Nevertheless, until patent encumbrance and copyright entanglements are things of the past, the extra steps will be necessary if users expect fully functional media playback.
Similis sum folio de quo ludunt venti.