At the Sounding Edge: Sounding Better All The Time
The second annual conference of Linux audio developers will be held in Karlsruhe from April 28 through May 2. If you're in Germany during that period and happen to be near Karlsruhe, you might want to stop by the very cool Zentrum fur Kunst und Medientechnologie (ZKM) and check out some of the many lectures and presentations about the cutting edge work going on in Linux audio software development.
For those of you who can't make it to the conference, I present a brief State Of The Art message here in this month's installment of my At the Sounding Edge series. There's so much going on in the Linux sound software world that I can't hope to cover everything--not even all of the most important developments--but hopefully I can give interested readers a sense of what's happening and what directions we're taking.
Without a doubt, the two most important development tracks are the ALSA and JACK projects. Both supply the foundation for much of the most interesting application development happening today, and support for ALSA/JACK rapidly is becoming de rigeur in new sound software for Linux. I can't explore the technical depths of these fundamental systems, but I'll briefly describe what they are and why they are so important to the Linux audio development and user communities.
I've covered ALSA in a previous column, so I'm going to be brief about it in this article. ALSA is becoming a more familiar acronym, thanks to its inclusion in the Linux kernel sources. The ALSA sound system effectively replaces the older OSS/Free system, greatly expanding the sound services available to developers and normal users. ALSA provides sound card drivers, a library (libasound) for easy access to audio system functions and a suite of handy utilities. Soundcard support ranges from consumer grade cards to high-end professional digital audio boards. This advanced hardware support is necessary for users wanting to use Linux in more demanding audio production environments. Thanks to the efforts of the ALSA team, we now can claim support for a small but significant number of pro-audio boards. Without that support the Linux kernel sound system would remain bound to consumer-grade audio, which may be effective enough for casual use but certainly is insufficient for deployment in a professional studio.
ALSA's utilities include tools for your soundcard mixer (alsamixer, amixer), MIDI connectivity (aconnect), simple record and play programs (aplay, arecord) and a variety of chipset-specific amenities. Almost all are command-line tools, and although they may seem humble mini-applications, they are quite powerful. I refer the interested reader to the information available from the ALSA Web site; if you already have ALSA installed, you can read the informative manual pages (e.g., man aplay).
The list of the wonders of ALSA goes on, but this is neither the time or place to explore them. Again, I refer the reader to the ALSA Web site for the most up-to-date information regarding ALSA's current capabilities.
JACK is perhaps one of the most amazing pieces of software yet written for the Linux audio system. The brainchild of Paul Davis (author of the Ardour hard-disk recording system), JACK's capabilities include these outstanding features :
An easy method of adding audio support to new applications
A robust professional-grade audio server designed especially for low-latency systems
A transport control mechanism for synchronizing the activity of JACK-aware clients
The first feature is, of course, of special interest to programmers. Writing directly for the ALSA API certainly is possible, but by comparison JACK is a much simpler way to provide audio services to a client application. It is no exaggeration to say that JACK has the potential to revolutionize Linux audio development. The list of applications already supporting it is an impressive testimony to its appeal and possibilities (see the JACK Web site for a list of current JACK-aware software).
JACK is fairly agnostic about the underlying audio system, supporting ALSA, OSS and PortAudio. It also is expanding to become a multi-platform solution, with some deployment already possible under the Mac OS X. Again, JACK relieves the developer of concerns about the lower-level audio system, providing a simple and clean interface to the underlying system without sacrificing the system's capabilities.
Inter-application communication is an important feature of both JACK and ALSA. The ALSA sequencer API provides a way for compliant MIDI applications to share I/O ports, permitting multiple access and destinations. JACK does the same for audio, a rather more spectacular feat of programming: MIDI streams are relatively thin compared to digital audio and somewhat easier to manage and synchronize. Digital audio is another kind of beast entirely, with inherent issues of latency effecting the perfect synchronization of I/O streams. JACK has been designed to address and resolve those issues, making it possible to route and connect audio streams in much the same manner as ALSA's sequencer handles MIDI data.
Another exciting aspect of JACK is its transport control. One of the Holy Grails of audio development on any platform is the smooth control (start/stop/continue) of various applications by using a master controller. JACK can do this now with a number of applications, although not all are completely transport-aware. An application must be written with specific support for the JACK transport API, and only recently has that interface stabilized to the point of wider acceptance and deployment. Many well-known Linux sound and music applications already support the JACK transport controls, and more are on the way.
Before leaving this section, I must note that the OSS/Linux driver package from 4Front Technologies still is alive and in active development. However, my focus here is on free and open-source projects. I will cover OSS/Linux and other commercial Linux audio ventures in a future column.
It might be hyperbole to say that the Linux audio software scene is booming, but I feel safe saying that a sustained explosion of activity in applications development has occurred over the past year. Some major applications are evolving towards 1.0 releases, and others recently reached their first birthdays. In addition, some new applications and ports have appeared that show great promise along with their current usefulness.
Meanwhile, many Linux sound and music software stalwarts continue their steady tread towards audio world domination. Hard-disk recording continues to be almost the sole property of the Ardour and ecasound projects. Although Ardour draws much attention and well-deserved praise, ecasound continues to improve and remains the only command-line recording system capable of professional use. Both applications are excellent examples of the recent advances made by Linux sound software developers. Linux MIDI sequencing software is well-represented by the MusE, rosegardenmusic.com and seq24 projects.
Other outstanding MIDI software includes the JSynthLib universal synthesizer patch editor/librarian and the wonderful KeyKit experimental composition environment. Software synthesis languages are well-represented by the venerable Csound (now under the GPL/LGPL), RTcmix and Common Lisp Music. Relatedly, development of the Linux version of SuperCollider3 is moving along briskly, with some GUI components already available for alpha-testing.
Softsynths (standalone software synthesizers) abound under Linux, with outstanding examples in ZynAddSubFX, ALSA Modular Synth and Qsynth, a GUI for the fluidsynth soundfont-based synthesizer. Soundfile editors continue to be dominated by the Audacity, Snd, ReZound and Sweep projects. The Hydrogen drum pattern/song composer is clearly the most actively developed application in its genre, and the SoundTracker and CheeseTracker programs perpetuate the ancient art of music module tracking.
The LADSPA plugin arsenal has expanded recently, thanks to contributions from Tom Szilagyi, Tim Goetze and the indefatigable Steve Harris. VST/VSTi plugin support also is expanding, with various loading mechanisms currently under development. The Windows/Mac music software world increasingly is evolving towards sophisticated plugin-driven frameworks, so support for VST/VSTi plugins is of particular importance to musicians who would like to switch platforms but don't want to lose their investment in commercial audio software. However, it should be noted that many LADSPA plugins are as powerful and sophisticated as their VST counterparts. Having both LADSPA and VST/VSTi plugins running under Linux is simply a win for everyone.
Lest casual desktop audiophiles feel left out of this assessment, excellent A/V file and stream players can be found in XMMS, AlsaPlayer, xine and MPlayer. Those last two players also include versions of themselves as browser plugins with impressive support for the array of video formats found on the Web (yes, you can now watch Quicktime trailers on-line in Mozilla). In addition, Linux players and plugins for the Real and Flash formats are available from their parent companies.
It also is worthwhile to consider briefly where Linux sound and music software is weak, especially when compared with what's available to the Windows/Mac musician. Of course, by design Linux audio developers have steered clear of attempting monolithic applications such as Cubase or Logic Audio. However, many of the functions of those applications can be replaced by running a JACK-connected LADSPA-savvy set of software such as Ardour, Hydrogen, Rosegarden and ZynAddSubFX. More significant holes exist in the domains of music notation software, loop composition software (such as Acid) and advanced software samplers. Again, depending upon the complexity required, it may be possible to combine some Linux software to achieve some of the Win/Mac software's functions, but users coming from the Win/Mac world may be put off by the complication of the combined applications approach.
Regarding music notation software, Linux has nothing like Finale, although the combination of NoteEdit with LilyPond has great potential; LilyPond produces superb print output. Regarding Acid-like programs, it has been pointed out that Ardour can be used in similar fashion to some extent, but those capabilities would be much enhanced by the incorporation of more sophisticated controls over looping sound (e.g., pitch-shifting, time-stretching, real-time loop-point edits). Nevertheless, no Linux application currently compares to Acid, and the same must be admitted for sampling applications, such as Gigasampler. Projects are under way to design such software for Linux, but nothing yet exists to match them.
I am planning another article to discuss Windows and Mac music software that runs under emulation in Linux, so I must excuse myself for not considering here audio applications that can be run under WINE, VMware, ARDI Executor or other Mac and Windows emulation environments.
Linux still suffers from a lack of support by some of the better-known hardware manufacturers. Some companies have indicated that Linux simply isn't in their development radar. Until the numbers urge them, they have no interest in either developing drivers themselves or giving the necessary specifications to third-party developers, such as the ALSA team. As a result, Linux pro-audio hardware support currently depends almost exclusively on the boards and cards from RME and M-audio.
The news is better for desktop audio enthusiasts, with many popular soundcard chipsets supported by ALSA drivers. Support for the Creative Labs SBLive is especially good, with working 5.1 sound, hardware synth support and digital audio output. Laptop users may be happy to note that USB sound and MIDI device support has improved, and useful PCMCIA audio cards can be purchased from CoreSound, RME and DigiGram.
Just as Linux itself no longer is regarded as merely an interesting hack, Linux audio software also is growing into what I call its mature adolescence. Even the often-dreaded installation and configuration details have been largely resolved by the AGNULA distributions and the Planet CCRMA packages. Plus, live CDs, such as dyne:bolic let anyone check out the multimedia possibilities of Linux without installing anything.
Alas, I've touched on only a few interesting developments going on in the Linux audio world. I'm excited to learn more about the most recent Linux audio evolutions in Karlsruhe, so be sure to check out next month's column for an update on the latest activity in Linux sound and music software.
Dave Phillips (dlphilp@bright.net) is a musician, teacher and writer living in Findlay, Ohio. He has been an active member of the Linux audio community since his first contact with Linux in 1995. He is the author of The Book of Linux Music & Sound, as well as numerous articles in Linux Journal.