State of the Art: Linux Audio 2008
The world of Linux audio covers many domains, from basic desktop sound services to embedded systems, from simple Internet telephony to the demands of professional recording studios. This article presents an overview of the Linux audio world and its current status.
Due to the breadth of the topic, I have divided this article into two parts. For the same reason, it is impossible to discuss any particular program in-depth in this kind of survey. However, I cover many of the programs mentioned here in my articles for the Linux Journal Web site (www.linuxjournal.com), and I refer readers to those articles for more detail on individual programs.
Sound support in Linux has progressed grandly since my first experience with the system in the mid-1990s. The mainstream distributions all have excellent device detection, including sound card detection, and the typical desktop audio functions are configured transparently during installation. Most distributions let users add and configure extra sound devices manually, but some detect and configure multiple devices automatically. Any configuration needed after installation is handled similarly through control panels and other user-friendly utilities. In addition to technical advances, Linux sound and music applications have grown in number and sophistication. We now have excellent software for media production and playback, and there is good reason to expect continued development in audio-oriented domains.
In this overview, I distinguish between the two broad categories of system software and applications software. System software here includes the kernel sound system and other tools and utilities that make the user-level programs work. This software is usually not associated with normal usage, and typical users may, in fact, never even know about it. Nevertheless, this layer is where the heavy lifting is done, and although it's not flashy or sexy, it is the heart of the Linux audio system. In contrast, applications software includes the programs that present themselves to users via the distribution's menus, toolbars and file managers. This software is what typical users understand and employ on a regular basis.
The first part of this article covers system software and a variety of other audio-related software domains. The second part focuses on the state of Linux sound and music production software.
ALSA (Advanced Linux Sound Architecture) provides the core audio and MIDI services to the Linux kernel. These services include the device drivers installed with the kernel, a library and API for programmers, various user-level tools and utilities, and firmware for some USB and other devices. If a project's development is reflected in its changelogs, ALSA is clearly a very active project, with a steady stream of enhancements and fixes, and an expanding list of supported sound cards and audio chipsets.
The developers at 4Front Technologies have improved their OSS (Open Sound System) Linux package in similar fashion. In 2007, the company announced the decision to place the system under open-source licensing. As a result, OSS is now a free, open-source project, complete with source repository, Bugzilla, wiki and protection by the GPL, BSD and CDDL licenses. But, all this goodness isn't only for Linux. The OSS package also provides high-quality audio/MIDI services to our comrades on UNIX systems, such as FreeBSD and Solaris.
ALSA and OSS provide the device drivers needed to make your sound hardware usable by the operating system. Sometimes they create these drivers by consulting material provided by manufacturers, and sometimes they reverse-engineer a driver. To my knowledge, only Audio Science offers Linux drivers developed in-house. Audio Science manufactures high-quality audio hardware marketed mainly to radio broadcasters, and codes and provides native Linux drivers for its products. Ah, if only [manufacturer's name deleted] would be so wise.
Normal desktop actions and activities that require audio services include system sounds, media players, Internet telephones and simple recording. However, normal users now expect amenities, such as transparent software mixing and relatively glitch-free performance, in a multitasking system. ALSA's dmix plugin provides software mixing, but not all distributions want to employ it. Thus, competition remains for the position of the default Linux desktop audio server. GNOME still uses esd (the Enlightened Sound Dæmon), and KDE still backs the aRts dæmon, but the PulseAudio Project definitely is the newcomer to watch. PulseAudio already has been adopted as the sound server of choice for the OLPC XO laptop and for recent releases of Ubuntu, and there's reason to believe it may overtake esd and/or artsd as the One True Server for typical users' sound-related activities.
Similis sum folio de quo ludunt venti.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Hash Tables—Theory and Practice
- The Ubuntu Conspiracy
- Making a PHP Site on Linux Work with a Microsoft SQL Server Database
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Dealing with Boundary Issues
- System Status as SMS Text Messages
- Bluetooth Hacks