LWN.net Logo

A survey of Linux audio plugins

June 15, 2012

This article was contributed by Dave Phillips

Whether for a word processor, an image editor, or a Web browser, plugins have become a common characteristic of modern application software design. An audio plugin functions generally in the same manner as any other kind of plugin: it extends the capabilities of the host application in some way. For example, a DAW (digital audio workstation) may have its own reverberation effect, but if the workstation supports plugins I can substitute a 3rd-party reverb plugin with preferable features and sound quality.

Plugins for audio purposes face performance constraints not commonly encountered by plugins for non-audio applications. An audio plugin is typically expected to perform some process on an incoming data stream, possibly in realtime, and the processing should take place with minimal disruption to the timing and audio quality of the affected stream. Latency becomes a critical issue if the process takes more time than the data stream permits, at which point mechanisms for latency compensation may be invoked. Many control processes can take place in realtime with no undesired effects while others require considerable care in their deployment. Some parameters of a plugin may be adjusted in realtime without concern, while others may involve considerably larger data and/or longer processing, thus raising the likelihood of dropouts and other forms of audio corruption. Programmers must resolve these and other problems if they expect their plugins to be acceptable in performance-critical cases.

Linux audio enthusiasts can choose native plugins from a variety of acronyms, of which DSSI, LADSPA, LV2, and VST are the best known and developed formats. In addition to these Linux formats, limited support is available for non-native VST plugins. In this article I'll present some of the technical details of these formats along with some of their outstanding examples, beginning with LADSPA.

LADSPA - Keeping It Simple

LADSPA is an acronym for the Linux Audio Developers Simple Plugin API. As its name implies, the format was designed with simplicity as a first consideration. The LADSPA API is easy to understand and implement (see ladspa.h for the details), and its practical design led to rapid adoption throughout the Linux audio development community. The plugin format is best employed for adding special effects such as distortion, echo, or reverb; for dynamics processing (compression, limiting, normalization); and for spectral processing with filters or equalizers. Thanks to its uncomplicated API more than two hundred LADSPA plugins are currently available, and compatible host applications now include DAWs, soundfile editors, dedicated processor racks, and video editing suites.

The format's self-imposed austerity does have its drawbacks. Instrument plugins (those which, like ordinary instruments, create sounds rather than modifying them) are not well-supported, though some plugins provide "building-blocks" for audio synthesis. The API's most conspicuous limitation is its non-support for any GUI toolkit. The host application provides the GUI, so if your DAW is built with Qt your LADSPA plugins will appear in a Qt-based GUI. Depending on your point of view, this particular limitation is a blessing or a curse, but it is difficult to argue against the logical decision of the original developers. By keeping the GUI out of the framework, the developer's focus remains on the plugin's processing capabilities. Users may not get pretty pictures with LADSPA but they do get some pretty good plugins.

I use only a few plugins with my own recordings, and I tend to use plugins I know well enough to predict their response to the material, most of which is either straightforward song composition or not-so-straightforward electroacoustic experimentation. The songs get the plugins, while experimental music typically includes its own processing. For the sound quality of my voice and guitar I like the Versatile Plate Reverb from Tim Goetze's C* Audio Processing Suite. I keep a basic setting for it, but since the effect has only a few parameters I tune it a little differently every time I use it. My guitar typically gets treated further by Steve Harris's DJ EQ, a 3-band equalizer I find handy for quick fixes to my cheap guitar's less than lovely tone. Last but far from least, Steve's SC compressor/limiter plugins are also commonly employed as final dynamics processors in my master track.

[LADSPA GUI example] The rest of this article deals with plugin formats that have evolved since LADSPA, but I assure readers that LADSPA itself is alive and well. The Guitarix project has formatted some of its processors as LADSPA plugins, and the developers at Harrison Consoles thought that the format's capabilities were sufficient for some of the internals of Mixbus, their enhanced version of Ardour2. Harrison programmers have also developed excellent GUIs for some LADSPA plugins (as seen on the right), prompting me to hope that Harrison might consider developing more such plugins for general distribution.

LV2 - The Heir Apparent

After LADSPA's initial success developers started to consider the next stage in the evolution of high-performance audio plugins for Linux. LADSPA's limitations were too severe to allow the required expansion of capabilities, so work began on new formats that would permit such amenities as embedded graphic envelope editors and synchronized clock control for delay effects. The LV2 format has been designed to supersede LADSPA, to address the earlier format's limitations and to provide new capabilities to plugin developers. The full specification can be read at the LV2 Trac page.

LV2's chief developer Dave Robillard recently announced that the format has attained 1.0.0 release status. Along with this news comes Dave's LV2 ports of the MDA plugins by Paul Keller, a set of thirty-six plugins that includes a variety of instruments and audio signal processors. Developer Nick Bailey has released test versions of his Minaton and Triceratops synthesizers, and developer falkTX recently announced the availability of his DISTRHO project, a collection of LV2 versions of instruments and processors from other projects, most of which were originally developed for Windows audio plugin hosts. These additions expand a collection that already includes fine work from Steve Harris, Tom Szilagyi, the CALF developers, and the Invada group. It's worth noting that many of these programmers are also known for their involvement with LADSPA-based projects.

[IR] Tom Szilagyi's IR is a fine example of an advanced LV2 plugin with outstanding audio capability and rich display features. IR processes an input signal with data from an impulse response file, i.e. a kind of soundfile snapshot of the reverberant characteristics of an acoustically interesting environment. This processing method is called convolution, and it is an effective way to achieve high-quality reverb effects without purchasing expensive hardware and airline tickets to the great cathedrals of Europe. Many free and non-free collections of response files are available on-line, or you can create your own with only an interesting acoustic space and some software from Fons Andriaensen, a true DSP wizard of the Linux audio community.

Special mention must be made of the plugins from linuxDSP. These plugins are among the best available for Linux - they aren't free, and they're not open-source, but they are reasonably priced, multiformat, professional-grade audio plugins. At this time all linuxDSP plugins are signal processors - EQ, compressor, reverb, etc. - but the developer has hinted at the production of a linuxDSP synthesizer plugin. Given the quality of his DSP work I'm eager to hear what he can do with an LV2 synth plugin.

As I put the final touches to this article I learned of new sets of LV2 plugins from developers Joe Button and Rui Capela. Interest in the format is clearly growing since the announcement of its milestone release, and I look forward to seeing more work from more Linux plugin developers. Indeed, LV2 appears to be on track to become the standard for Linux audio plugins.

DSSI - A LADSPA For Instruments

DSSI - the Disposable SoftSynth Interface - is a project originally headed by developers Chris Cannam (one of the original and current developers of the Rosegarden DAW), Sean Bolton, and Steve Harris. Like LV2, DSSI addresses a number of shortfalls in the LADSPA format, particularly regarding instrument plugins. In fact, DSSI is essentially a wrapper for a LADSPA plugin with the addition of an OSC (Open Sound Control) interface for toolkit-agnostic GUI and MIDI control, features notably missing in LADSPA. This approach reflects the author's desire to create a "LADSPA for instruments" that retains the simplicity of the earlier format while providing new mechanisms for features not included in the LADSPA API. The OSC protocol is also an easily implemented method of establishing communications between programs or parts of programs (as it's used in DSSI). Interested developers can peruse the complete DSSI specification for more information and full details on implementing the format in their own applications.

Notable DSSI plugins include Sean Bolton's Hexter and xsynth synthesizers for FM and analog sounds, the Fluidsynth-DSSI soundfont synthesizer, and Nick Dowell's amSynth. The neko* synths, WhySynth, and the HOLAP suite are also worthy entries to the list.

[Ray-V]

Jeff Hubbard's LibModSynth project demonstrates that DSSI lives and continues to evolve. The project has already given us a development library (libmodsynth), a synthesizer (Ray-V, seen to the right), a variety of effects processors, and a sampler under construction. Jeff is dedicating his efforts to expand awareness of DSSI's potential, and his contributions are eloquent proofs. I hope he continues to expand the LibModSynth suite and that other Linux plugin developers will consider adding their efforts to the cause.

VST/VSTi - The Steinberg Standard

In 1996 the programmers at Steinberg GmbH developed the VST plugin format for use with the Cubase DAW for Windows. The company released a development kit with agreeable licensing conditions that fostered the rapid growth of an industry of 3rd-party VST plugin designers. Other host manufacturers quickly supported the format - the host/plugin architecture was a win for everyone - and a wave of VST plugins hit the market. The VSTi specification extended the format's capabilities to include virtual instruments, another win for everyone. VST/VSTi plugins now number in the thousands, ranging in cost from free to expensive, and varying likewise in quality and utility.

Musicians who want to migrate from Windows often inquire about the feasibility of running their VST plugins under Linux. Limited support does exist for native Windows plugins, but the extent of that support varies dramatically. At least three methods currently exist for running Windows VST/VSTi plugins under Linux - the fst software, the dssi-vst-wrapper bridge utility, and the use of a Windows DAW such as Reaper running under Wine. However, in my opinion support for native Windows VST plugins should be considered experimental. Some plugins will work with any of these methods, others with only one, some will run very well, others not at all. The version of Wine can have significant impact on performance, and all Linux VST support mechanisms depend on Wine.

Steinberg's terms are non-problematic for Windows programmers, but they are not amenable to FLOSS developers. The license forbids the free redistribution of the API, and there is no indication from Steinberg that they will ever alter their policies. Despite the format's problematic legal aspects the demand remains and designers must respond. Fortunately, thanks to some clever reverse-engineering from Javier Serrano Polo's VeSTige project, Ardour3 and QTractor can be compiled with support for native Windows VSTs, and LMMS includes a module that provides a VeSTige-based VST-to-Linux bridge. FeSTige is a convenient VST/VSTi plugin launcher that will eventually be replaced by its evolving offspring Carla, a multiformat launcher from developer falkTX. Clearly, users want to be able to deploy their VST plugins under Linux. Some developers will avoid the issue by refusing to support a non-native format, while others see and pursue a unique opportunity.

[AspectVST]

Some VST/VSTi plugins can be compiled as native Linux shared object files (e.g. fooplug.so) that require no dependency on Wine. Commercial plugin developers have been quick to adopt the format - the current catalog of Linux VST plugins includes excellent instruments and processors from Loomer Software (pictured, right), discoDSP, and linuxDSP. Some excellent MIDI plugins can be found in the pizmidi and Mucoder collections, both of which are freeware, not open-source free software. The FLOSS audio development community has been less productive with the format, though notable work has been done by the ccern and the Jucetice projects. It remains to be seen whether the catalog continues to expand, and that depends most of all upon the quality of the processors and instruments created for it.

Plug In The Future

The stabilization of LV2, the renewed interest in DSSI, and the continuing utility of LADSPA point to a positive outlook for audio plugins for Linux. Commercial interest is likely to maintain a focus on the VST format - it does own the largest market share, and native Linux support might open a door for enterprising Windows VST developers. New cross-platform development tools promise easy output to multiple targets and new hosts are appearing on the Linux applications stack. From where I stand the future of Linux audio is sounding better all the time.


(Log in to post comments)

A survey of Linux audio plugins

Posted Jun 16, 2012 9:55 UTC (Sat) by lab (subscriber, #51153) [Link]

Great article, offering a good overview, with tons of interesting pointers. Thanks a bunch!

A survey of Linux audio plugins

Posted Jun 17, 2012 1:05 UTC (Sun) by augustl (subscriber, #75060) [Link]

What pains me most about "pro audio" is the lack of reusability. There are a bunch of monolithic DAWs, and a bunch of proprietary formats, and not a whole lot of modular goodness and programmer hackability. I'm glad to see that some work is put into improving this, with simple architechtures and all that jazz.

A survey of Linux audio plugins

Posted Jun 17, 2012 12:29 UTC (Sun) by robert_s (subscriber, #42402) [Link]

"What pains me most about "pro audio" is the lack of reusability. There are a bunch of monolithic DAWs, and a bunch of proprietary formats, and not a whole lot of modular goodness and programmer hackability."

Well, that's sort of the idea of JACK.

The problem as I see it is, in pro audio you have an awful lot of people who use the same workflow day in & day out and want it to "just work" and be seamless. However in my experience it's usually very difficult to get a really streamlined painless workflow with a hugely flexible pluggable architecture.

A survey of Linux audio plugins

Posted Jun 17, 2012 21:01 UTC (Sun) by christian.convey (guest, #39159) [Link]

Thanks for the nice write-up. I've just starting playing around with signal processing and synthesis on Linux, and it's nice to finally see the big picture.

A survey of Linux audio plugins

Posted Jun 18, 2012 2:50 UTC (Mon) by showell (subscriber, #2929) [Link]

A great article from someone with real knowledge. Thanks for taking the time to put electrons to screen.

I'm an old (analogue style) musician but would love to get into midi synths.

A survey of Linux audio plugins

Posted Jun 23, 2012 16:30 UTC (Sat) by shlomif (guest, #11299) [Link]

Thanks for the write-up. I enjoyed reading it.

A survey of Linux audio plugins

Posted Jun 24, 2012 3:00 UTC (Sun) by jtc (subscriber, #6246) [Link]

I think it's a little sad that (as far as I can tell) there are no good practical solutions on Linux systems for good, sampled sounds - I'm talking about conventional instruments: violins, oboes, clarinets, trumpets, horns, etc. VST/VSTi appears to be the only practical format for good sampled sounds and, although some VST/VSTi solutions are available for Linux, there don't appear to be any that provide the selection of high-quality sounds that are available for Windows or OS/X. Perhaps I'm wrong and a Wine-based solution (e.g., running Cubase) on a modern computer would work well; but I suspect that there would be too many problems for this to be practical - e.g., unreliability. However, I'd be happy to be proven wrong.

A survey of Linux audio plugins

Posted Jun 25, 2012 17:07 UTC (Mon) by StudioDave (guest, #84346) [Link]

Sampled sounds are available for Linux, and many sample packagers now make it clear if their formats are suitable for use by Linux sample players (see the listings at www.kvraudio.com). The GIG and SFZ formats are supported by LinuxSampler, and anything in WAV format can be used directly in most sequencers and samplers. Or perhaps I don't clearly understand your question ?

A survey of Linux audio plugins

Posted Jun 29, 2012 5:17 UTC (Fri) by jtc (subscriber, #6246) [Link]

My main point is a general one that, as far as I can tell, the high-quality samples available today of instruments (e.g., oboe, horn, violin, clarinet) that are difficult to make sound good/realistic are either not available on Linux or are not practical. Not available in the case of VST/VSTi samples; and not practical in the case of GIG samples (since, IME, linuxsampler has too many limitations to be practical) - plus with gigastudio discontinued the format will be obsolete in a few years, IMO. I'm not aware of any SFZ samples of such instruments that are high quality, but I could be wrong. (Sure there are VST samples available for Linux, but I don't think there are any of truly high quality [such as the Vienna Symphonic Library].)

I'm generalizing, due to lack of time to research this further at the moment, but I think my general impression is correct. If I'm wrong I'm happy to be corrected.

[Sorry for the late response - I just saw your reply just now.]

A survey of Linux audio plugins

Posted Jun 29, 2012 12:20 UTC (Fri) by StudioDave (guest, #84346) [Link]

We're having a little problem with terminology. First, "VST samples" isn't precise - a VSTi plugin might *use* samples as sound sources, but as far as I know there's no VST sample format. Sampled sounds typically originate as a WAV or other high-quality soundfile format that gets wrapped into a sampler-specific format, e.g. GIG or DLS. A VST sampler plugin may well use GIG, DLS, or even WAV files directly.

Incidentally, I've read that the main developer of LinuxSampler uses the Vienna Symphonic Library. As I mentioned before, sample libraries are often usable as-is with the existing Linux samplers, provided the sample format is recognizable. So far the recognized formats seem to be GIG, SFZ, and WAV (possibly along with other formats supported by libsndfile). Btw, the Linux samplers I know of include Petri-foo, Specimen, Euphoria, and LinuxSampler.

The glaring omission in Linux-supported sample formats is the Kontakt format. I believe it has become the de facto standard for Windows-based samplers, thanks likely to the demise of Gigastudio.

Best,

dp

A survey of Linux audio plugins

Posted Jul 2, 2012 21:52 UTC (Mon) by jtc (subscriber, #6246) [Link]

Thanks for the info and correction. My ignorance is showing - looks like I've misunderstood some of the details of the technology and terminology.

With this corrected understanding, I guess my main question is simply: Is my assumption that there are no high-quality orchestral samples available (and usable, in a practical sense) for Linux systems incorrect? From your response it sounds like the answer might be yes (i.e., good news - high-quality samples are available).

I find it hard to get precise information on this with google (at least without spending a lot of time, which I'm not willing to do right now). It looks like the Vienna Symphonic Library (VSL) samples exist in Kontakt format - bad news, apparently, since I accept your implication that Kontakt samples cannot be used easily on Linux. It looks like VSL might also be available in DSL, which perhaps is good news - you seem to imply that DSL samples can be played on Linux. (I don't think I had heard of DSL before you mentioned it here.) Of course, there are other high-quality sample collections besides VSL. Do you know if any of these are playable on Linux, in a practical sense and, if so, where should I look? (If it matters, I use rosegarden to compose music, and I'm looking for good-sounding samples so that I can improvise [as a basis for composition] and allow the sound to inspire me [which tends to lead to good/creative musical ideas], instead of what often happens - a somewhat unpleasant and uninspiring result due to mediocre sounds.)

My question, I suppose, is pretty broad and perhaps hard to answer with the needed detail, but if you think what I'm looking for exists and can provide me with some pointers, hints, key-words, or such to help me find what I'm looking for, I'd appreciate it. (In case it matters - Windows is not an option for me - I'm allergic to it; and OSX is probably not an option either.)

Thanks!

A survey of Linux audio plugins

Posted Jul 12, 2012 21:38 UTC (Thu) by StudioDave (guest, #84346) [Link]

I decided that I really didn't know enough about the topic, so I asked my friend Alex Stone to address the issue of a Linux-based composer using high-quality commercially-available sample libraries. I admit that I was surprised by his response, but as far as I can tell it's simply the plain unvarnished truth: If you need Kontakt-formatted sample libs you're just out of luck if you're working in Linux. Alex advised - unhappily advised, I must add - using a Windows box as a host for such libs, but that does not seem like an alternative for you. However, I recently perused a lengthy list of sample libraries for popular and other musics "not classical", and I was pleased by the number of vendors who provide plain WAV and/or AIFF files as a supported format. Not very helpful, I know, but it gets closer to the truth of the situation. I hope this reply clarifies it a little more.

Best,

dp

A survey of Linux audio plugins

Posted Jul 15, 2012 3:02 UTC (Sun) by jtc (subscriber, #6246) [Link]

Thanks, Dave, for taking the time to look into this. From what you said it sounds like my original assumption that there are no practical solutions for high-quality orchestral samples on Linux might be true. (Hopefully, a few years into the future, this will not be the case.) But I should probably do some more research before concluding this is so.

VeSTige

Posted Jun 28, 2012 18:14 UTC (Thu) by AutoStatic (guest, #71722) [Link]

Fantastic article! Really a great read. Keep 'm coming Dave!

"Fortunately, thanks to some clever reverse-engineering from Javier Serrano Polo's VeSTige project, Ardour3 and QTractor can be compiled with support for native Windows VSTs, and LMMS includes a module that provides a VeSTige-based VST-to-Linux bridge."

Afaik Ardour3, Qtractor and LMMS, when compiled with the VeSTige headers (or with the original Steinberg VST headers), can host native Linux VST plug-ins, so no native Windows VST's.

VeSTige

Posted Jun 28, 2012 21:35 UTC (Thu) by StudioDave (guest, #84346) [Link]

If you build Ardour3 with the --windows-vst option you get support for native Windows VSTs (i.e. fooplug.dll). As far as I could tell there was no invocation of the Steinberg headers, leading me to believe that A3 is using the VeSTige headers. I built A3 with that option today, but the program segfaults on opening. :)

Best,

dp

“The license forbids the free redistribution of the [VST/VSTi] API”

Posted Jul 4, 2012 4:33 UTC (Wed) by ldo (subscriber, #40946) [Link]

I wonder if it’s worth pointing out that, as per the recent Oracle-vs-Google court case, and I believe another one in Europe just before that, that it is quite clear that, legally, APIs are not copyrightable.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds