Some Linux Audio Updates And Expansions
In this week's article I'll bring you up-to-date on what's happening with some of the many exciting developments in the world of Linux audio software, with recent news regarding the JOST plugin host, the Audacity soundfile editor, and the new LV2 native Linux plugin standard.
Developer Lucio Asnaghi (a.k.a. kunitoki on #jacklab) has released version 0.4.2 of his JOST plugin host. JOST accepts audio synthesis and processing plugins in LADSPA, DSSI, and native Linux VST formats, and provides a very flexible audio and MIDI I/O system. This latest release adds JACK master control capability to the system. This development is very cool for those of us who enjoy working with MIDI in a modern plugin-based sound synthesis and processing environment.
Kunitoki also encourages and monitors the development of native Linux VSTs from open source code provided by the original authors. Though written originally for Windows, this code is often released under the GPL, and some remarkable collections are available. The programmers at mda-vst kindly donated a package of more than thirty synthesizer and effect plugins, many of which have excellent sound quality. Other notable contributions include various effects from the DestroyFX crew, some interesting synths from the soi-disant Rock Hardbuns, and a potentially very useful set of MIDI event processors from the developer known only as The Piz.
JACK control capability adds a nice touch to the system. JOST already supports any number of internal MIDI sequencers while providing at least two ways to send and receive MIDI data from the outside world. Figure 1 demonstrates one such arrangement with seq24 and JOST running under JACK control. The sequencers do not yet operate with the level of independence found in the ancient Dr. T's KCS (Keyboard Controlled Sequencer), but the ability to fold sequences within sequences is very cool.
Rock Hardbun's Vex synthesizer provides the possibility for further complexity (Figure 2). Vex includes an integrated sequencer/arpeggiator with each of its three oscillators, thus creating a scenario in which Vex is controlled by an external sequencer, one or more JOST sequencers, and its own internal sequencer. Of course, JOST supports multiple instances of its hosted plugins, so you can complicate your composition and processing I/O to your complete satisfaction.
The JOST source package includes a Todo list in the top-level readme.txt file that indicates what Kunitoki has in store for his project, including support for synchronization with MTC (MIDI Time Code) and other interesting MIDI enhancements. Wishing personally, I'd like to see more edit functions for the MIDI sequencer and more complete JACK support. The system typically shows no xruns during performance, though some plugins can send it into deep space when fiddling with realtime parameter control. After all, JOST is still in development, but I recommend it even in its current early stages and I encourage users to help out by testing the program and reporting your experiences to Kunitoki. He is dedicated to improving JOST, and it's always a wonderful thing to watch (and help) a good program get better.
Audacity is certainly one of the most popular soundfile editors available today. As of November 2007 Audacity ranked at position #11 in SourceForge's Top Downloads list, with nearly thirty million downloads to date. If only a fraction of those downloads are in use that's still a hefty number of users, and given Audacity's power and utility it's quite likely that most of those packages are indeed gainfully employed and hard at work even as you read this article.
By the way, in July of 2007 Audacity won the coveted SourceForge Community Choice Award for the Multimedia category. For the sake of perspective, you might like to know that there are nearly 19,000 projects listed in SourceForge's Multimedia projects. Maximum congratulations to all Audacity developers and users !
The Audacity developers maintain stable and development branches for the project. The stable version is all well and good, but I prefer using the development version. It's the more advanced package, and it's typically quite stable, though all usual caveats apply. The development version recently reached release number 1.3.4, a significant release despite advancing only a minor number. You can peruse the New Features page for the shiny details, among which you'll find many fixes for old problems and some interesting new functions. The new stuff includes a neat Mix/Render To New Track command, support for the excellent VAMP audio analysis plugins, and a helpful metadata editor for OGG, FLAC, and WAV/AIFF exports.
If this update isn't present yet in your distribution's package repository you can build it if you want to check out its newest features as soon as possible. Fortunately Audacity is compiled with freely available tools and support packages, and I had no troubles building it for both my JAD and 64 Studio systems. When the source code's dependencies are satisfied the program can be built and installed with this familiar compile-time litany :
./configure --with-your-options-here make make install (as root user)
Audacity can be built with a variety of useful options, so be sure to run ./configure --help first to see what choices you have for extending and enhancing Audacity's audio toolkit.
This article intends only to inform readers about these updates, so I won't detail Audacity's laundry list of features. Suffice to say that it does what you'd expect from any polished editor. All sorts of cut/copy/paste operations are available, almost four hundred plugins are at hand for effects and dynamics processing (with the LADSPA sets), your work can be imported and exported in a broad variety of soundfile formats (including compressed formats such as OGG and MP3), the program functions well as an easy-to-use multitrack/multichannel recorder, and so on and so forth.
Audacity has become especially popular for editing podcasts and other network broadcasts, for transferring and repairing recordings from vinyl and cassette tape, and for use in teaching music. Each user will find his or her own special uses for the program, as you can see in this list of typical uses for Audacity here at Studio Dave :
- Trim excess silence from recordings
- Cut large files into smaller pieces
- Normalization (raise and balance amplitudes)
- Add effects such as reverb, chorus and flanging
- Slow playback speed without changing pitch (very useful for teaching)
- Remove cracks and pops from recordings
- Convert sample rate
- Convert file format (from WAV to OGG and/or MP3)
- Equalize or filter sound to make it brighter or give it more bass
- Use the editor as a music and sound composition tool
As much as I like and use Audacity it does have some minor and not-so-minor problems for me. The Linux version supports the JACK audio server as implemented in PortAudio, a cross-platform library of audio services that includes JACK support. Unfortunately this implementation is somewhat non-intuitive: Audacity does not show up in the QJackCtl audio connections panel until the user presses the Play button, which means that it's difficult to make arbitrary connections with other JACK clients. You can work around this limitation by creating a sufficiently long dead space at the start of your track, making your connections in QJackCtl while Audacity plays through the empty space, but this is a bothersome dodge. You also need to use the Pause control to stop playback, the Stop button severs Audacity's JACK connections. It would certainly be a performance improvement if Audacity simply appeared in QJackCtl as soon as it opened.
Windows users may be unhappy with Audacity's default lack of support for VST plugins and the ASIO low-latency driver. As fully GPL'd software Audacity cannot directly include the code necessary to add those amenities to itself, but the services can be compiled into the program. Users who wish to build Audacity for Windows will need to read the detailed instructions in the win/ directory in the Audacity source tree. Like the Linux build, the process is not terribly difficult, though any previous experience compiling software from source code will surely simplify that process.
Some readers may wonder why I even mention the Windows version in this article. As many of you know, I like to run the Reaper sequencer under Wine, and Reaper can invoke an external editor for editing segments and regions of audio within the sequencer. Alas, without ASIO support I can invoke Audacity as my editor of choice, but it won't play if Reaper is configured for the wineasio driver (which is how I use it on my JAD box). I can use it without problems on my 64 Studio iron, but since I can't use the wineasio driver there I must accept high latency values for both Reaper and Audacity. Even then, Reaper performs nicely as a host for VSTs, and I get to use Audacity as its embedded editor.
The LADSPA plugin standard has been a great success for the developers and users of Linux audio software. Every major sound application for Linux supports LADSPA plugins, and the collection of those plugins has grown in bulk and quality. Some LADSPA plugins are staple items in nearly every session I record here at Studio Dave. I routinely employ the CAPS Plate Reverb with my vocals and the DJ EQ for quick and easy equalization for my guitars. A glance at many of the descriptions on the Linux Audio Music site reveals that many users have their favorite LADSPA plugins, a testament to their utility and sound quality.
Wonderful as it is, LADSPA was designed primarily for effects and dynamics processors, i.e., it was not originally intended for virtual instruments. In the Win/Mac music and sound software worlds we see the VST standard for fx and other processors and the VSTi standard for virtual instruments such as synthesizers and drum machines. In the Linux world, LADSPA corresponds to the VST standard, while the DSSI API is similar to the VSTi standard. However, Linux audio developers have been working quietly and patiently on an "enhanced LADSPA" known as LV2, and judging from recent traffic on the LAD mail list LV2's development is not so quiet these days.
At this time there are only a few LV2 plugins and fewer LV2 hosts, as you might expect from the project at this stage. However, at least two notable projects show early support. The excellent Traverso DAW accepts LV2 plugins and the zyn project plans to create a series of LV2 synthesis plugins extracted from the famous ZynAddSubFX softsynth. If you're interested in learning more about the standard you should check out its Web home page and join the Linux Audio Developers mail list. The crew can always use more help, and not just from programmers. The Linux audio community stands to benefit greatly from a comprehensive native plugin standard, so check it out, get on board, make it happen.