Linux Audio Plugin Update
Audio processing and synthesis plugins are always a lively topic for musicians. Many contemporary music-makers rely completely upon their plugin collection for all their sound sources and processing routines, and it is not at all uncommon to discover that some of these composers have never learned to play a traditional instrument. However you feel about audio plugins they are a fact of life in modern music production.
In the Win/Mac worlds the VST standard rules, thanks to the Steinberg Company's liberal policy regarding the use of their VST SDK (systems development kit), but the VST flag is not the only one waving over those worlds. Apple offers the AU (Audio Unit) format for Mac audio plugins, Digidesign has their proprietary RTAS (Real-Time Audio Suite) for their products, and Microsoft's DirectX includes a plugin programming interface. In an apparent bid to compete with this array of formats, Linux can claim its own variety of standards and acronyms, including LADSPA, LV2, MESS, DSSI, and native VST. This article presents a summary of recent activity in Linux audio plugin development.
LADSPA is the senior player in the Linux audio plugin field. Its API (applications programming interface) is stable, but development is no longer as lively as when it first appeared. Nevertheless, some significant LADSPA plugins have shown up in the last few months.
The Harrison Mixbus (Figure 1) is the Big News in LADSPA plugin development. Mixbus is a special commercially-available version of Ardour customized by Ardour's chief developer Paul Davis and the engineers at Harrison. According to the announcement on the Ardour site the Mixbus DSP core is a single closed-source LADSPA plugin, which is certainly a vindication of the continuing viability of the LADSPA API (applications programming interface). Reports from users are positive, the screenshot is hot, but alas, Mixbus is currently available only for OSX. Plans are in the works for a Linux version, so you can bet that I'll be watching the Ardour site for the announcement.
I've written about Guitarix here already, but I must admit that it's hard keeping up with its development. The latest release contains an improved GUI, free re-ordering of the processing modules (hooray!), a new multiband EQ, and some helpful additions to the jconv widget. More to the point, all of the Guitarix processors are available as LADSPA plugins. If you build Guitarix the installation process will automatically place the module plugins in the default LADSPA directory (/usr/lib/ladspa or /usr/local/lib/ladspa). I compile most of the software I use, and I assume that a repo installation of Guitarix will also install the plugins in the expected locations.
The LEET collection is not new, but I discovered it only recently. Programmer socaldan3000 has selected some existing problematic LADSPA plugins and has worked on improvements to their internal processing operations. The collection includes only three plugins - two EQs from the TAP set and one chorus from the MCP bundle - but they have been reprogrammed to accept 2-channel I/O for easier accommodations in Ardour.
Linux audio software developers continue to provide impressive examples of the LV2 API. Krzysztof Foltman has updated the GUIs for his CALF plugin collection. Figure 2 shows off the new look of the plugins and the project's neat calfjackhost launcher. In previous articles I've mentioned the excellent LV2 collections from linuxDSP and the Invada group. The list expands once more with the addition of the Russolo Suite and EQ10Q. The Russolo Suite is named after Luigi Russolo, a musician in the Futurist movement who is widely regarded as one of the first composers focused on using noise as a musical resource. As might be expected from its namesake, the Suite is dedicated to software for creating noisy sounds. Pere Ràfols Soler's EQ10Q (Figure 3) is dedicated to shaping the frequency bands of that noise (or any other sound, noisy or not). EQ10Q is a 10-band parametric equalizer with a variety of filters and per-band resonance (Q) control, packaged in a neat GtkMM interface. It's also another good example of the capabilities of the LV2 API.
Linux offers two methods for VST plugin support. One method provides bridge software such as dssi-vst and fst running VST plugins in an emulation environment. The other method provides development tools for compiling VST plugins as native Linux software. Both methods depend upon the capabilities of the Wine project.
Until recently these methods also employed code from the Steinberg VST development package. Doing so presented a problem for Linux developers - the code can't be distributed freely and thus conflicts with software protected by the GPL. This conflict resulted in source-only availability, i.e. you could build the software yourself but you could not distribute the binary legally. Today, the situation has changed, thanks to the VeSTige project, and bridge software and native plugs alike can be built and distributed without the Steinberg software.
An announcement from user funkmuscle on a Linux Musicians forum led me to a neat GUI front-end for fst. Festige (Figure 4) is a handy tool for launching your VST/VSTi plugins under Linux. The program is simple, but it allows multiple instances of any plugin, uses JackMIDI for MIDI connectivity, and supports MIDI-learn for MIDI controllers. Festige can use a little more tuning - I'm getting too many xruns in an optimized system - but at version 0.0.3 it's already usable. It's also just great fun. For one of my tests I launched the dfx Transverb processor and two instances of the Crystal synthesizer, then I routed the audio of one synth through the Transverb while the other went directly to the system audio output in QJackCtl. I fired up Paul Davis's great Softwerk MIDI sequencer, configured it for random pitch, rhythm, and program change, and connected it to the synths. Crystal receives on all MIDI channels, so I used holborn's useful midirgui to route the MIDI data coming from Softwerk. Thus, one instance of Crystal received data over channel 1, the other instance received data on channel 2. With all systems go I started Softwerk and let the good times roll (Figure 5). Softwerk happily generated patterns for hours while I occasionally reset the randomization controls to vary the orchestration and pitch sequence. Like I said, it was great fun.
In another recent article I listed some new native VST plugins, including Christian Borß's HybridReverb2, KResearch's KR-Reverb FS, and Loomer's String synthesizer. Not long after that article was published I read a comment stating that native VSTs weren't supported by many programs because there simply aren't many of them. In response to that comment I composed a list of the plugins populating my $HOME/vst-linux folder. I was surprised to find that I have more than a hundred native Linux VST plugins in that folder. The collection encompasses audio processing, sound synthesis, utility plugins, sampling, and MIDI processing, with notable work from Lucio Asnaghi's Jucetice project, the Loomer group, mucoder, discoDSP, and the pizmidi project. Their quality varies, but some of them have become regular players in my virtual bands (Figure 6). Their quantity at least refutes the assertion that there aren't many of them.
MESS and DSSI
Werner Schweer's MusE Experimental Soft-Synth (MESS) interface was designed to accommodate virtual instrument plugins. The API saw some early adoption for the MusE sequencer, but after an initial spate of production it appears that the format is currently moribund. Chris Cannam's Disposable Soft-Synth Interface (DSSI) was also designed for virtual instruments. While there have been few notable recent releases for its plugin interface the system is supported by various Linux hosts, including Rosegarden, Csound5, the Aldrin tracker, and the QTractor DAW. The API is stable at version 1.0, there are some good plugins available for it now, and its dssi-vst software (see above) remains popular with users running Windows VST plugins on Linux music production boxes.
Just after I submitted this article I discovered that the linuxDSP LV2 collection has expanded to include a new compressor, a vintage delay, a stereo reverb, and a graphic equalizer (Figure 7). These plugins are donation-ware, i.e. you must donate some amount in order to acquire the key to unlock the encrypted zip file. The author suggests a modest figure, but trust me, these plugins are worth ten times what he suggests. As this article demonstrates, LV2 is certainly up to the task of allowing classy new interfaces, but looks are meaningless in the world of sound. The linuxDSP collection is exceptionally well-engineered, the plugins sound great, and the author is constantly improving their capabilities. So go ahead, make a donation, and check out some of the best audio plugins available for Linux.
That's all for this brief update. I hope you'll check out some of the plugins mentioned here, have some fun, and be sure to make useful reports to the developers.
Similis sum folio de quo ludunt venti.
- Let's Go to Mars with Martian Lander
- My Childhood in a Cigar Box
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Papa's Got a Brand New NAS
- Returning Values from Bash Functions
- Tech Tip: Really Simple HTTP Server with Python
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Panther MPC, Inc.'s Panther Alpha
- Debugging Democracy