Professional Sound Editing with Audacity
by Howard Wen
04/14/2005
Need to do sound recording or editing, but find most audio software daunting
due to complicated interfaces or price? Then take a look at Audacity: it's free, open source,
and packs a bunch of professional-level sound editing features, all under a very intuitive, friendly user interface (Figure 1). By design,
Audacity is a user-friendly but still powerful alternative to other sound
editors that tend to be complicated to use. What's more, it comes in Linux,
Mac OS X, and Windows versions.

Figure 1. The Linux version of Audacity (click for full-size image)
"Many other editors use nonstandard GUIs or require you to understand
terms and concepts from analog mixing boards. A lot of people use Audacity
simply because they gave up trying to get other tools to work," claims the
27-year-old founder and lead developer of Audacity, Dominic Mazzoni, who works
for the Jet Propulsion Laboratory in Pasadena, California, as a research
programmer and develops Audacity in his spare time.
While a graduate student of computer science at Carnegie Mellon
University in 1999, Mazzoni started writing what would evolve into Audacity: he
created a program to visualize pitch transcription algorithms, then later
decided to expand this tool into an audio editor.
Easy to Use, but Still Powerful
Audacity is different than other music composition programs in that the
designers planned from the start to make a cross-platform program (Figure 2);
its code runs natively on Linux, Mac OS X, and Windows. (The Mac and Windows
versions don't require X11.) Few applications can
run natively on all three of these platforms, especially multimedia programs.
This works to Audacity's advantage: professional musicians and audio
engineers tend to prefer working in a cross-platform environment, because they
often need to collaborate with people who use software running on
different platforms.

Figure 2. Audacity also runs natively on Mac OS X (click for full-size image)
In the Linux world, Audacity may not be as advanced or powerful as other
audio editors (which also function as music composers), but it does stand out
as one of the easiest to use. Mazzoni and other developers on the Audacity team
borrow the best ideas and features from several audio editors and digital audio
workstations, but with the goal of presenting everything under an interface
accessible even to inexperienced users.
"Several other applications support the same features as Audacity:
multitrack recording, nondestructive editing, LADSPA effects. But most of them are designed
for audio professionals and take time to learn," says Matt Brubeck, a
programmer in Seattle who contributes to the Linux side of
development for Audacity. "Audacity's interface is very easy for new users, but
it still has many of the key features found in [more] professional
applications." (See Figure 3.)

Figure 3. Few Windows sound editing programs are both free and as feature-rich as Audacity (click for full-size image)
Here are some highlights of Audacity's many features:
- Records directly to the hard drive, with no limit on the recording time
- VU meters help you monitor recording and playback levels
- Dozens of built-in effects and generators
- Commands and tools for cutting, pasting, splicing, mixing, and
sample editing
- Unlimited undo feature, with a history dialog
- No limits on the number of tracks or the sample rate of an audio project;
any such limitation depends on the capability of your system's
hardware
- Imports practically any uncompressed audio format (including WAV,
AIFF, and raw headerless) and compressed format (MP3 and Ogg Vorbis); Audacity
exports to most of those formats, too
- Allows you to split a project into multiple pieces and save them to several
files simultaneously
- Supports multiple plugin formats; this includes plugin effects written in
the Nyquist
language, a sound and synthesis composition programming language based on
Lisp
- All but a few small features have total support across the Windows, Mac OS
X, and Linux versions
Crossing Platforms Without Compromises
Mazzoni wanted to design an application that would look and feel like it was
native on whatever platform it ran, so he selected C++ as the language in which
to write Audacity.
"We wanted the application to be fast and responsive. This ruled out every
other high-level language at the time I started development," Mazzoni says.
"Today, if I was starting from scratch, I would consider using wxPython, but it
would still require tens of thousands of lines of C/C++ code in order to
achieve comparable speed and responsiveness."
The team uses the wxWidgets library
to build the cross-platform user interface for Audacity. "Thanks to wxWidgets,
it is possible to write great cross-platform programs without compromising on
anything. I wish more people would go this route," Mazzoni says.
To achieve cross-platform audio input/output, Audacity incorporates PortAudio, chosen because of its powerful
and robust design, and the fact that it runs on Linux, Mac, and Windows. In
comparison, similar cross-platform libraries, such as Simple DirectMedia Layer and OpenAL, are optimized for playback but not
recording.
"I believe that Audacity shows that today there really is no reason anymore
to code just for one OS, and that free software tools are a real alternative to
company-owned technologies like .NET or Java," says Markus Meyer, one of the
Audacity development team's members. Meyer is a 25-year-old freelance
programmer in Nuremberg, Germany.
Technical and Nontechnical Limitations
There are, however, a few technical limitations with Audacity:
- Each track can have only one "clip," though this has improved in the
program's unstable release
- Aside from volume automation and resampling, Audacity does not support
real-time effects; all effects are applied when you choose them
- It supports only stereo output; for example, you can work with multiple
tracks, but you can't mix down to Dolby 5.1 surround and listen to it directly
from Audacity
- Similarly to the above, effects can operate on only one track at once
"Audacity shouldn't really have built-in limitations. Things like the
maximum number of tracks or the size of the project are practically unlimited,
and even special provisions exist in the code to allow data to scale beyond
limits of the OS," Meyer says.
Perhaps the biggest limitation is not technical but stems from
licensing and patent issues. For example, the official release of Audacity does
not include VST support because the licensing of the VST SDK, the Audacity developers
feel, is "most unclear."
More Feedback, More Features
For future versions of Audacity, Mazzoni and his team have added support for
Audio Units (an effects plugin format for Mac OS X) and have started to
consider VST support. This will make a much larger library of plugin effects
available for Audacity. For the Linux version, the Audacity developers want to
improve LADSPA support as the LADSPA community adds support for native
GUIs.
Meyer himself is working on new additions to make audio production easier
for people working at radio stations. Many of those elements will be of benefit
to other users, too: support for multiple clips per track, a clipboard that can handle several clips, and enhanced undo functionality.
"Audacity may not do everything you need in an audio program yet, but if it
does just one thing better than any other tool, then why not keep it around
along with your other tools?" Mazzoni asks rhetorically. "Keep giving us
feedback, and maybe Audacity will eventually surpass these other tools."
Howard Wen
is a freelance writer who has contributed frequently to O'Reilly
Network and written for Salon.com, Playboy.com, and Wired, among others.
Return to the Linux DevCenter.