State of the Art: Linux Audio 2008
The Linux audio infrastructure provides well-designed and well-tested programming interfaces for sound and music applications developers, particularly if they employ JACK to handle audio (and now MIDI) I/O. Alternatives include the OSS API and directly programming ALSA, but JACK is truly the superior solution.
Regarding GUI toolkits: Qt and GTK remain the dominant players, but FLTK and wxWidgets also are popular. This multiplicity of GUI toolkits has been a problem for plugin developers, although the emerging LV2 specification may resolve that issue.
Python and its GUI bindings have become popular for some types of music applications, Tcl/Tk remains a popular scripting language for smaller applications and rapid prototyping, and Java programmers have added a sizable number of excellent applications to the Linux audio software armory. Java audio programmers also can employ JJack, a JACK audio driver for the JavaSound API. At this time, only the Frinika sequencer makes use of JJack, but I hope to see it receive the attention it deserves.
The JUCE multiplatform development environment provides excellent tools for developing audio applications. The JUCE framework is fully JACK-compliant, but unfortunately, its adoption has been slow so far. Current implementations include Rick Taube's GraceCL (next-generation algorithmic music environment), Kjetil Mattheussen's Mammut (massive FFT audio transformer) and Lucio Asnaghi's JOST plugin system. These programs all have attractive GUIs with excellent audio capabilities—all courtesy the JUCE framework.
Audio/video-optimized Linux distributions are flourishing. Stand-out systems include Planet CCRMA, 64 Studio, JAD, MusiX, Dynebolic and Ubuntu Studio. Some of these distros include ISO images for making live CDs that can be used to test the system without installing it to your hard disk. All of them have been engineered for low-latency performance, and all are currently maintained. These distributions are the Linux audio novice's best friends; they are highly recommended for anyone who wants to work seriously with audio/MIDI on Linux.
Ivica Ico Bukvic is the current director of Linuxaudio.org, which is “...a not-for-profit consortium of libre software projects and artists, companies, institutions, organizations and hardware vendors using Linux kernel-based systems and allied libre software for audio-related work, with an emphasis on professional tools for the music, production, recording and broadcast industries.” Among its many purposes, the organization functions as a portal to a variety of “priority” links, including URLs for an applications index, a software mirror, a VST plugins compatibility database and other useful resources.
Linux audio developers meet annually at the Linux Audio Conference, held in Koln in 2008. Rumor says that LAC2009 may be held in Parma, Italy, but no definite plans have been made at the time of this writing. This conference is the event of the season for Linux sound folk—a four-day fiesta of presentations, performances and much sharing of ideas, code and music. Keep an eye on the LAC link page at Linuxaudio.org for news of next year's conference, and be there if you can.
Program-centric communities have evolved around the maintained projects. Communications channels include the typical forums, wikis, mailing lists and IRC channels, but they now include channels, such as YouTube and MySpace. YouTube has become an especially useful channel for demonstration and instructional videos. Some examples of Linux audio software in action can be found there now, and I expect more to appear.
A wide variety of music made with Linux software can be heard at Hans Fugal's LAM site. Other good sources for Linux-made music include the Linux Audio Users mailing-list archives, the Internet Archive and, of course, the forums and other comm channels mentioned above.
In my opinion, the Linux audio infrastructure is now a solid structure, with exceptional capabilities and provision for future development. JACK is by itself a most remarkable achievement, and it has become the cornerstone for all serious audio applications, particularly in the pro-audio domain.
Configuration has been all but completely automated during installation, and post-installation configuration has become a no-brainer in most distributions. Distribution developers deserve high praise for the work done in this regard. Again, it's not sexy stuff, but it makes a great difference to the newbies and even to the not-so-newbies.
Audio performance on the normal multitasking desktop has been a problematic point, but the PulseAudio Project promises a satisfactory resolution to that problem. Only time will tell if its adoption becomes widespread.
Normal applications that require audio support are well served by the current software map. Requested features are being implemented, and usability has improved greatly since Ye Olden Times. With software mixing and relatively xrun-free playback, the desktop audio system is looking and sounding better all the time.
Similis sum folio de quo ludunt venti.
- My Childhood in a Cigar Box
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Panther MPC, Inc.'s Panther Alpha
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Simplenote, Simply Awesome!
- Returning Values from Bash Functions
- Tech Tip: Really Simple HTTP Server with Python
- Debugging Democracy
- NethServer: Linux without All That Linux Stuff