Evaluating the condition of sound and music production software.
In this second part of my survey of Linux audio development, I focus on the application side of things. I would have liked to have included many other tools and applications, but time and space always are in short supply. So, my apologies if your favorite program isn't listed; feel free to let me know what you think I'm missing.
People coming to Linux from the Windows/Mac world of commercial sound and music software might think they've stepped backward in time. Linux audio and MIDI production software usually is not as visually attractive as the rainbow of products advertised in the major music magazines, but most musicians will agree that the sound is the thing. In that regard, Linux can stand tall and even can claim some colorful packages of its own.
ALSA supplies command-line utilities for simple recording and playback of audio and MIDI. These tools (arecord/aplay and arecordmidi/aplaymidi) are useful for quick uncomplicated purposes, and most distributions provide GUIs to ease their use. At the next level, LMMS (Linux MultiMedia Studio; Figure 1) and Jokosher are good examples of desktop music production software designed in the manner of Apple's popular Garage Band. They engage the user quickly with colorful uncomplicated GUIs, but they are quite powerful within their design constraints. Both programs are in current development and have active communities of users and developers. Wouter Boeke's AMUC (Amsterdam Music Composer) is another less-weighty program that includes many attractions for the desktop composer, including an integrated synthesizer, notation capability and very light resource requirements.
Ardour dominates the professional-grade category of serious recording tools for Linux. Paul Davis continues to lead Ardour's programming team, and the project remains one of the finest examples of Linux audio software development. Ardour 2.5 is a mature application, and the developing Ardour 3.0 promises to bring the program to a new level, thanks especially to Dave Robillard's work on its new MIDI recording and editing capabilities. No strict timetable exists for Ardour's releases, and I certainly can't predict when 3.0 will make its public debut. However, Ardour's development track record is well defined, with a consistent series of releases, so I hope we may see it before year's end. Of course, SVN sources are available to anyone who wants to test the cutting edge while waiting for the public release.
Smaller but still powerful alternatives are available. Rui Nuno Capels' QTractor is a multitrack/multichannel DAW (digital audio workstation) with a design similar to the portable studios in the digital audio hardware world. QTractor also distinguishes itself by its support for natively compiled Linux VST plugins, along with the usual complement of LADSPA and DSSI plugins. Remon Sijrier's Traverso employs a highly efficient interface, is very easy to use and provides a complete production system, from recording your first tracks to burning an audio CD.
Kai Vehmanen's Ecasound occupies a unique position in the Linux audio software world. Ecasound is a command-line DAW, a complete audio recording and processing solution that requires no graphics displays. It runs in an interactive mode or can be driven by user-composed scripts; it is fully JACK-aware; it records in multichannel modes—the list of Ecasound's capabilities stretches on and on. Ecasound is a long-lived project, and I'm happy to report it's still developed and maintained by its original author.
Fervent Software's Rosegarden is another venerable Linux music application with a long and healthy development track. Rosegarden always has supported common-practice notation as a composer's interface, and its developers now plan to strengthen that interface further. Given its JACK support, there's little need for Rosegarden to repeat all the duties of a DAW, and it's a win for notation-based composers to have their notation-based GUI JACK-sync'd to the DAW of their choice.
Developer Werner Schweer has moved his MusE audio/MIDI sequencer in the opposite direction—he has removed its notation interface and refocused that code into the MuseScore program (see below). Meanwhile, MusE continues to evolve as a dedicated audio/MIDI sequencer, and version 1.0 is currently in alpha release.
Consider the common studio scenario of a MIDI sequencer driving two or three softsynths whose output is directed into Ardour. When your work is done, you can save each application to its current state, but there's no easy way to recall every component to its session state upon re-opening the project and its parts. The LASH software provides an elegant solution to that problem, but its adoption has been slow. Client applications must include direct support for LASH, and so far, developers have been focused on other problems. Nevertheless, the project remains active, the client list grows, and I hope to see wider adoption of LASH throughout the Linux audio development community.
Mastering is a process normally associated with the post-production stage of a recording project. When mastering a project, track levels are balanced and the final touches of compression and EQ are applied to add that touch of audio perfection before burning the master disc. Fortunately, Linux can claim an excellent mastering utility, the JAMin program designed by Steve Harris and developed with help from a talented crew of Linux audio programmers. JAMin's last major release (0.95.0) dates from 2005, but the project already is mature and continues to show intermittent CVS activity.
Many older softsynth projects (amSynth, ALSA Modular Synth and ZynAddSubFX) are unmaintained and in need of attention. The synths mentioned above sound great, but they could all benefit from amenities, such as current compiler optimizations, LASH support, JACK support and so on.
Significant synths in current development include Ingen (LADSPA/LV2/DSSI plugin-based synth), QSynth (soundfont2 synthesizer) and FMS (modular synthesis). Recently, a new crop has appeared with some very unusual approaches to synthesis methods and GUI design. Malte Steiner's Minicomputer is a powerful subtractive synthesizer with eight monophonic “pages”. Justin Smith's Synth Of Noise is a glitchmeister's dream synth, and Juan Pedro Bolivar Puente's Psychosynth presents a unique 3-D interface for creating basic (and not so basic) synthesis networks.
Samplers are represented by Specimen and the LinuxSampler Projects. These applications differ in some significant ways: LinuxSampler utilizes files in the GIG format made popular by Tascam's GigaSampler, and Specimen is happier with soundfile formats supported by libsndfile. LinuxSampler (Figure 2) is a client/server architecture with at least two GUIs and a command-line interface. Specimen is a standalone GTK-based application. LinuxSampler and Specimen both support JACK, but Specimen also supports ALSA and is a LASH-savvy application. LinuxSampler has more features associated with the GigaSampler model and is the more consistently maintained program, but both samplers are useful in the complete Linux music-maker's studio.
I also must mention Tapeutape, Florent Berthaut's MIDI-controllable “virtual sampler”. Tapeutape has a rich set of features (including LASH support) and is designed especially for live performance, with or without a GUI. The latest version of the program is 0.0.5 from April 2007, but the author has indicated that he's still working on it, and an update should be released by the time this article is published.
Hydrogen holds its position as the premier Linux drum machine/rhythm programmer. Its development track slowed for a while—version 0.9.3, the current stable release, dates from early 2006—but work proceeds on the SVN sources, and community support is active and strong. Version 0.9.4 promises great improvements—thanks especially to the new stewardship of Sebastian Moors and his development crew.
Samplers and soundfont players function nicely as drum sound sources in a MIDI sequencing environment, and drum loops have become a common method of composing rhythm tracks in the modern DAW. Given these factors, it's not surprising that few virtual drum boxes are created or maintained these days. However, the orDrumbox program has a number of interesting musical features and could be a worthy contender for Hydrogen, though it will need JACK support first.
Until recently, JACK Rack was the preferred standalone signal processing system for Linux audio production. That program has many features to recommend it, including access to the full range of LADSPA plugins and parameter control with MIDI continuous controllers. Alas, project development is slow, averaging two releases per year, and no release has been made yet in 2008.
Linux-based guitarists now have a very fine effects processing system with Rakarrack, a new system based on effects algorithms culled mainly from the ZynAddSubFX synthesizer. Version 0.2.0 is available now, and Rakarrack is in heavy development. Future releases will give Linux guitarists a more comprehensive instrument-specific effects system, including cabinet simulations and more effects.
Many projects in this domain have strong development tracks. Bill Schottstaedt's great Snd continues to grow nicely, with many enhancements and fixes from its wide community of users and developers. Younger projects, such as Audacity (Figure 3), mhWaveEdit and Sweep, show current development, but unfortunately, the much-anticipated update for ReZound has yet to materialize, and we still await better JACK integration with Audacity and Sweep.
LADSPA, the Linux Audio Developer's Simple Plugin API, is an excellent resource for audio plugin developers, and users now can enjoy many fine plugins created with the LADSPA API. Standout sets include Tim Goetze's CAPS suite, Steve Harris' indispensable SWH package and Tom Szilagyi's TAPS collection, but many other LADSPA gems are available. The overall collection continues to expand, albeit slowly.
The intentional simplicity of the LADSPA API necessarily restricted plugin designs primarily to effects and dynamics processing. The emerging LV2 specification takes LADSPA to the next level, particularly with regard to instrument plugins. LV2 competes with the DSSI (Disposable SoftSynth Interface), but the developers of both projects are working toward the common goal of providing Linux with something like the famous VST/VSTi plugin architecture for Windows.
Direct support for VST/VSTi plugins currently exists in two forms. Bridges, such as FST (FreeVST) and the dssi-vst utility, can run some native Windows VST/VSTi plugins directly under Linux, while Lucio Asnaghi's JOST Project works at porting open-source VST plugins to native Linux versions. Applications with support for VST/VSTi plugins (Windows or native Linux) include Ardour, Rosegarden, LMMS and QTractor. However, Ardour's support requires a special build procedure, and the resulting binary may not be redistributed.
The terms of the Steinberg API forbid the free redistribution of the VST SDK, so a mature LV2 is likely to be an attractive alternative for plugin developers. Time will tell, and although the specification is already a worthy contender, users need plugins. A few projects already address that need (see the list at lv2plug.in), but more would be better.
The developers of LMMS have resolved the issue in another way by coding a drop-in replacement for the needed VST SDK, making it possible to provide direct VST support without the Steinberg code. This development is recent, and it remains to be seen whether Linux audio developers will incorporate that solution into their own programs.
This domain can be divided between programs that function primarily as a composer's workspace and programs that function as music typesetting software. The magnificent LilyPond Project dominates the music typesetting category, and NtEd and Canorus are the best currently maintained notation-based composition interfaces. However, Werner Schweer's MuseScore rapidly is evolving into a superb WYSIWYG graphic interface for music composition, but it requires a cutting-edge installation of Qt and its other dependencies.
The Linux digital DJ can choose between two professional-grade mixers, UltraMixer and Mixxx, both of which are beyond their 1.0 releases and continue to display strong development tracks. Alexander Koenig's great “virtual scratcher” terminatorX has not been developed since 2004, but at version 3.82, it's safe to refer to it as mature.
The digital video jockey (VJ) is well served by the current crop of video mixers for Linux. Outstanding packages include FLxER, FreeJ, Gephex and Veejay, all of which work with video files and streams in ways analogous to the actions of audio disc jockeys. Video input can be scratched, stuttered, processed with special effects, and mixed with other video (and other media). Common laptops now are powerful enough to handle the audio and video resource demands of this evolving art form, especially if they're running Linux.
The Rivendell Project rules this domain. Rivendell (Figure 4) provides a complete solution for radio broadcasters (air-wave or network-based) who want to automate all or any part of their operations. The suite is an impressive achievement, with a fully professional set of features “...for the acquisition, management, scheduling and playout of audio content”, according to its Web site. The latest public release is version 1.0, and the project development status is current and ongoing.
Traditional software sound synthesis (SWSS) languages have flourished in Linux, and the platform continues to attract developers of such systems.
Csound enjoys the attentions of a wide community of users and a core development group of very talented programmers. The latest release, Csound 5.08, is a true powerhouse, with an amazing number of synthesis and processing opcodes, integrated GUI widgets, more complete JACK support and many other compelling features. The development of the Csound API has provided a mighty engine for programmers who want to leverage Csound's capabilities into their own software without having to rewrite its routines. Jean-Pierre Lemoine's AVSynthesis, Steven Yi's blue and Rory Walsh's Cabbage Project all depend on the Csound API for their audio processing functions.
Paul Lansky's venerable Cmix enjoyed continued development in the form of Dave Topper's superb RTCmix, but it seems that development has stalled since 2006. RTCmix definitely is worth getting into, and I hope that its development track will pick up again in the near future.
Bill Schottstaedt's Common Lisp Music (CLM) is another SWSS system derived ultimately from Max Mathew's legendary Music V. In fact, Bill recently incorporated Music V into CLM, but that's a trivial task for such a formidable developer. CLM has been in constant evolution for probably as long as Csound, and it enjoys the special attention of its own talented development crew. New releases are frequent and significant, typically adding new synthesis and processing functions along with such amenities as an amazing collection of bird-call synthesis routines and the aforementioned Music V. I also must mention Bill Schottstaedt's Common Music Notation (a Lisp-based music notation language) and his great Snd soundfile editor. All of his software is high quality and consistently maintained, and we are fortunate to have him and his work in the Linux audio camp.
Notable recent SWSS systems include ChucK, SuperCollider3 and the awesome Pure Data (Pd). Their modern characteristics include a more contemporary syntax and support for modern programming techniques, and in some cases, the language includes an integral (but not mandatory) GUI. ChucK and SuperCollider3 do not include integrated graphics primitives, but GUIs have been created for the language or for certain aspects of the language (for example, TAPESTREA, a fascinating tool for composition that requires ChucK's signal analysis and synthesis capabilities).
Pure Data deserves some further remarks. The systems I've mentioned here enjoy wide community support from users and developers, but Pd comes close to being a religion. It is mightily persuasive, with a variety of functions and routines that rival Csound, including a fantastic interface for working with OpenGL via the GEM library. Thanks to its vast resources (and excellent documentation), Pd can be pressed into virtually any audio, MIDI or video service.
In Ye Olden Times, the software found under this rubric would have included only language-based tools, but the scene has changed profoundly. The GUI is now the sound analyst's favored tool, and we can enjoy some wonderful software as a result of this focus on the user interface.
The award-winning CLAM Project continues along its innovative path, thanks to Pau Arumi and the development team at UPF in Barcelona. CLAM is the “C/C++ Library for Audio and Music”, designed for rapid development of sound and music applications. The system includes unique tools and utilities for audio analysis, synthesis and signal processing, complete with graphic controls and displays.
GRAME's FAUST is both a language for real-time audio signal processing and a development environment for DSP programmers writing plugins or complete applications. FAUST is indeed fascinating software, with a strong development team and an excellent collection of tools and utilities. I plan to review FAUST in a future article for the Linux Journal Web site.
Chris Cannam's Sonic Visualiser (Figure 5) is a program for “viewing and analyzing the contents of music audio files”, but that description reveals little about the program itself. The project intends to provide the best audio visualisation software for viewing waveform and spectrographic data representations in forms that can be utilized and comprehended by anyone, not only audio processing professionals. However, Sonic Visualiser is no mere eye-candy maker; it is, indeed, a serious tool for studying music and sound.
Albert Graef's Pure (formerly Q) is not a DSP environment per se, but it is obvious from its examples that audio and MIDI applications are certainly among its major focus points. Additionally, Pure/Q includes some very cool methods for interfacing with the FAUST and Pd audio synthesis and processing environments.
Linux can claim one of the finest composition environments available to computer-based musicians, Rick Taube's Common Music. Professor Taube has maintained Common Music consistently for many years, and most recently, he has begun work on an entirely GUI-based environment (GraceCL) for the system. IRCAM's OpenMusic is another composition-centric program that will run under Linux, but unfortunately, it is maintained only sporadically.
Linux distributions with an emphasis on multimedia support have flourished in the past few years. Planet CCRMA, 64 Studio, JAD, Dynebolic and Musix have reduced the agonies that attend the configuration of a low-latency high-performance system. Some of those distributions include live disc images for “trying without crying”, and other systems, such as Gentoo and Ubuntu, offer specialized versions of themselves optimized for audio work.
Despite the many advances in the Linux audio world, some irritating difficulties remain. The mainstream distributions have not yet agreed upon a common sound server, and they may never do so. Hardware support still is disappointing, especially in the pro-audio domain, and licensing issues continue to plague some projects. Nevertheless, many difficulties have been ameliorated or done away with entirely, as developers continue to work toward greater usability on the Linux desktop.
I began working with Linux in 1995, when only a few dozen decent audio/MIDI applications existed for Linux. I'm happy that we now have such a cornucopia of programs, despite their varying quality, and I see good signs indicating continuance of many of those programs. Obvious targets for improvement include more pervasive support for JACK and the LASH session handler, standardization of the preferred sound server for normal users, and more direct driver support from hardware manufacturers. Some changes will come easily, and some will be troublesome, but it's in the nature of Linux to confront and conquer such difficulties. Meanwhile, I'm using Linux to produce my own media creations and enjoy them along with the works (commercial and otherwise) of others. Good things are happening around me now, and I see more good things coming down the road. Whatever they may be, I'll be sure to let you know about them here in the pages of Linux Journal and on LinuxJournal.com.