Sound Production Using Free Software

Originally published on LiveJournal, 11.17.07

So, it took me a while to understand how all the pieces fit together, but I think I finally got it and am on my to produce a few songs. Stay tuned for those. Meanwhile, here’s how it works.

Though most of these applications are available for Windows, the components that make it truly “professional” (JACK and LADSPA, see below) require Unix-like operating systems, like those based on Linux or Mac OS X. A terrific complete solution is Ubuntu Studio, a “flavor” of the free Ubuntu operating system, which comes pre-installed and pre-configured with all this stuff, so you can start producing right away. (Or, you can start with the “regular” Ubuntu and add the components you want by yourself, achieving the same exact results. I preferred that route because I wanted to learn how everything was configured.)

The heart of the system is JACK. This baby drives your audio adapter: the physical ins and outs from your computer to the audio hardware. If your operating system supports realtime scheduling (there’s a version of the Linux kernel that does), then you get very low-latency control of the hardware. Low-latency means you can do a live processing of audio. More on that later.

Why do you need JACK? Why not just use your operating system sound directly? Well, that’s what you do with Windows, and it’s very inflexible. All applications simply share the output, and take over the input if they need it. Unless applications know how to work together, they can’t. JACK provides a generic glue for audio tools. Any application can create any arbitrary ins and outs, and JACK allows for “patching” these together. It’s the software equivalent of cables and wires. Hardware and software, in fact, become interchangeable in JACK. You can patch your live microphone feed or you can patch a pre-recorded track from a software sequencer. Once you get used to patching, it becomes obvious, and you wonder how it’s possible to live without JACK.

JACK Control is a useful little center for controlling JACK. It allows you to patch ins and outs to each other, and also does MIDI patching, which has nothing directly to do with JACK, but very useful to have in the same place. For example, I can patch my guitar input through an equalizer, and at the same place patch my MIDI keyboard into a software synthesizer. When patching gets more complicated, Patchage lets you see all your patches on one screen. This is the equivalent of having all your wires straightened out and visible. You can save your organization for later, so you won’t have to repatch everything when you work. Usefully, JACK Control can start Patchage automatically.

(One note about JACK: it’s a pain to set up, which is why a pre-configured solution like Ubuntu Studio is such a good idea. For JACK to work in realtime, you need to make sure your kernel has realtime extensions, that your audio adapter supports realtime, and that your audio applications have permissions to use realtime threads. JACK’s error messages are not very helpful for getting at why it doesn’t work. Generally, an onboard sound card won’t support realtime, because it uses your CPU to process sound. For professional production, you’d want a dedicated sound adapter, anyway. I’m very happy with my Edirol UA-25.)

Before moving on to the applications, I should mention LADSPA, an open standard for audio plugins, equivalent to Steinberg’s closed-standard, VST. (Note that even though the “L” in LADSPA stands for “Linux,” there’s nothing specifically Linux-dependent in the standard; plugins work fine in Mac OS X). “Plugins” are like “effects” in the hardware world: all those pedals and racks that do specialized sound processing, things like equalizers, echo, delay, reverb, chorus, gates, flanger, compression, distortion, etc. In the commercial world, VST plugins can cost a lot of money, because they feature trademarked sounds and algorithms, often in emulation of classic, well-known audio hardware, such as popular amplifiers or pedals. Commercial plugins can save time for a professional studio, which can quickly plug in one of these and get a familiar tone. In the LADSPA world, plugins are usually straightforwardly named after a known algorithm or effect, such as “Diode Processor” or “Foldover Distortion.” Unlike VST, LADSPA provides all plugins with dry/wet mixing support. In VST, it’s up to the plugin designer to add this. The “dry” part of the sound is whatever comes into the effect, while the “wet” part is whatever the effect “adds” to it. When chaining a bunch of effects together, mixing dry/wet can give you a lot of control over the sound path. Speaking of chaining, while most of the applications mentioned below support LADPSA plugins, a neat tool called JACK Rack let’s you chain a bunch of plugins together and save the configuration. The “rack” appears with standard JACK ins and outs, so you can just patch the whole rack to anything you want. For example, I have a bunch of racks saved for particular live guitar effects, so I can just plug the whole thing in when I need it.

UPDATE: Since I wrote this article, LV2, a successor standard to LADSPA, has been gaining some traction. Plugins that support LV2 are much more flexible! It seems likely that all major free audio software will soon support LV2 in addition to LADSPA.

(Generally, you’ll find that a lot of these applications duplicate the functionality of others. For example, both JACK Control and Patchage handle JACK patching. At first, all this was very confusing to me, because the duplication seemed superfluous. After a while, I realized how useful it was. Think of it as the difference between a pocket knife and a toolbox: in many cases, the pocket knife would do fine, but the toolbox is always available if you need some more control. The whole system is complicated enough as it is, so if the pocket knife is good enough, then it’s really nice to have it as an alternative to the toolbox. Even in basic production, you can have 10 pieces of software running at the same time! You really want to minimize the clutter, and duplication of functionality lets you do that.)

If you want to produce recorded tracks, you absolutely need a DAW: a digital audio workstation. These complex applications are combinations of 4-track tapes and studio mixers. They allow you to record tracks, parts of tracks, edit them by copying, pasting, moving, stretching, and then down-mixing them into a master track. DAWs are also useful for combining live sound with pre-recorded sound.

Ardour is an excellent, straightforward DAW. Earlier versions had a rather counter-intuitive interface, but since version 2.0 it’s very easy to use. There are no fancy features in Ardour, like those you can find in very expensive commercial DAWs, such as ProTools, Sequoia, etc. It just does the basic work of recording, editing and mixing well enough. Also, because there are so many other tools available for free, there’s no need for Ardour to include everything in the box. Ardour works heavily with JACK: every track has its own JACK ins and outs, which you can patch through any other JACK software. With JACK, the possibilities are really endless, for live and recorded sound. Ardour can also do basic sequencing work (such as drum programming), but for more complicated stuff, it’s best to use other tools.

Though Ardour does very simple sample editing, you might want a dedicated sound sample editor, to do things like cleaning up noise, adding noise, stretching and warping of sound graphs, etc. Audacity is very easy to use, but can also get to be very powerful by using Nyquist, a built-in sound-modeling language. Another good editor, ReZound works very well with JACK, making it perfect for live sound modeling.

Note also that mastering is different from mixing. Once you’re done with mixing your track, you want to be sure that the final sound is acoustically suitable for the medium in which you intend it to be played. A background track for a live show in a stadium has very different parameters than something meant for headphones and an MP3 player. Though you can clumsily master a track in Ardour, why not use JAMin, which is designed specifically for mastering? JAMin comes with excellent tutorials guiding you through the mastering process.

LMMS is a full-featured sequencer, a bit like the commercial FruityLoops or Logic applications. Think of it this way: LMMS does for MIDI signals what Ardour does for soundwaves. MIDI signals turn into sound by routing them into “instruments,” which are essentially sound synthesizers, either working with pre-recorded sounds (samples) or generating them “mathematically” (synthesized). MIDI gives you complete control over timing and rhythms, making it perfect for drums and “electronic” music. Of course, once you do get the sound out via the instruments, you can patch it via JACK as if it were any sound source. It makes a lot of sense to have LMMS and Ardour running together, combining MIDI and raw sources.

What LADSPA plugins do for sound, DSSI plugins do for MIDI signals. You can chain arpeggios, transposers, and all kinds of crazy effects via LMMS. LMMS supports LADSPA plugins, too. DSSI is the same interface used for MIDI instruments, making it easy to chain an instrument at the end of an effect chain.

But, LMMS is a general purpose sequencer, and there are other, specialized sequencer applications. Hydrogen, for example, is an excellent drum-programmer. Seq24 is a no-nonsense, simple sequencer, like those little sequencer pedals you see performers using on stage: it records and plays sequences; that’s it. It’s perfect for live shows, but also perfect if you just need minimal sequencer work, for which LMMS is overkill. (LMMS, by the way, is very good for editing bass tracks.) Of course, you can work with any of this software independently, and then use LMMS (and then Ardour) to bring it all together into a complete track. In LMMS, you can combine your sequences with MIDI effect chains.

If you’re more of a “classical” composer, you might like Rosegarden. If LMMS is the free FruityLoops, then Rosegarden is the free Cubase. It’s less of a sequence editor, though it does give you that functionality, and is more of a notation editor, letting you see your entire composition as a standard musical score. I like to think of LMMS as being a “horizontal” sequencer, there to link the building blocks (loops) together, while Rosegarden is a “vertical” sequencer, there to combine the tracks into a whole. They’re geared towards very different kinds of music. Rosegarden is the perfect companion to a workstation synthesizer.

Freewheeling is a really fun and creative sequencer, very different from the above. It’s meant for live playing with loops, and even supports multiple musicians working together.

Both LMMS and Rosegarden come with a few MIDI instruments (and Hydrogen has a few basic drum kits), but there are also dedicated instruments: just patch them all together with JACK and Ardour if you want. I’m very fond of the weirdly named ZynAddSubFX, for example, which works similarly to modular analog synths. The interface is ugly as all hell, but the sound is divine. I patch it to my MIDI keyboard (a tiny M-Audio O2), and soar into the late 1960s. There’s also Aeolus, a pipe organ synthesizer, Bristol, AmSynth, and even programming languages used to generate sounds via MIDI.

All in all, this seems like more than enough to get you started in the wonderful (and complex) world of sound production. You need some hardware for this to work well (at the minimum a computer with an audio adapter, a good microphone and monitor speakers), but the software is all free, and you can do a lot of powerful stuff with a lot less money than you would need for a hardware-based studio, or even a commercial software-based studio.

Happy free sounding!