User: Password:
Subscribe / Log in / New account


Interview with Audacity developer Dominic Mazzoni

May 26, 2004

This article was contributed by Dave Fancella

The full text of this interview (much longer) is available here.

As a long time musician, or so I like to call myself, and a free software enthusiast, I have personally found Audacity to be an indispensable tool for mastering mixes. Other people find a variety of uses for it, including deployment into public radio stations, restoring LPs for CD-burning, and more. Audacity has been in continuous development since 1990. It is a multi-track recorder, mixer, wave form visualization tool, and editor all rolled into one. It's the Free Software equivalent of Protools, Soundforge, and Cakewalk, albeit without the midi portion of any of those programs.

Recently I exchanged some email with Dominic Mazzoni, the Lead Developer and founder of Audacity. As a long-time lurker on the Audacity-devel mailing list, I've come to be familiar with Dominic as one of those kind, gentle spirits who leads first with his coding and second with his ideas, and is an inspiration to us all. Here, then, is the email interview with Dominic Mazzoni:

Q: In the Audacity FAQ, it says "Audacity was started in the fall of 1999 by Dominic Mazzoni while he was a graduate student at Carnegie Mellon University in Pittsburgh, PA, USA. He was working on a research project with his advisor, Professor Roger Dannenberg, and they needed a tool that would let them visualize audio analysis algorithms. Over time, this program developed into a general audio editor, and other people started helping out." Would you provide some information on the nature of the tool? How did it turn into a general audio editor? Was it a graded assignment, and if so, what grade did you get?

A: I was in a Ph.D. program at CMU, and the way it works there is that grad students are supposed to work on independent research right from day one, even while we're taking classes. My dream was to develop automatic music transcription software that could take any recording and turn it into sheet music. This was too difficult, of course, so I was working on monophonic pitch transcription and melody matching, which eventually led to some reasonably successful research in how to retrieve a melody from a database of songs based on a sung/hummed query. While I was trying to visualize pitch transcription algorithms, I started developing my own tool. Since there weren't any other audio editors for Linux that I liked, and I couldn't afford any good editors for the Mac (my two preferred platforms), I thought it would be fun to turn my project into a complete editor.

My advisor, Roger [DF: Roger Dannenburg is the mastermind behind the Nyquist scripting library which is now embedded in Audacity and is just one way to extend Audacity's sound processing capabilities], was very supportive of the project, and convinced me to turn the editor into a Computer Science research project. So I came up with an interesting data structure that could do editing operations quickly, and we wrote a paper on it. By the end of that year, though, I was having a lot of fun with the audio editor and was spending more and more time on it outside of my official research. I came up with the name "Audacity" and released it on Sourceforge. It was pretty limited at the time, but it was cross-platform, which was a big deal, and it worked well enough to generate interest. From that point on I worked on it mostly as a hobby, rather than as a part of my research, though I did find it useful for my research, too.

Q: Audacity has been gaining a lot of traction in the market, lately. How do you feel about that? Do you ever get the "15-minutes of fame" feeling, or is it something you ever really think about?

A: I've thoroughly enjoyed all of the attention that Audacity has gotten. I enjoy working on something that people find useful, and I would choose fame over fortune any day. I've invested so much time into Audacity that it can affect me pretty seriously - seeing a good review or getting an email full of praise can give me an emotional high that lasts all week, but unfortunately bug reports, especially serious ones where people have lost work because of a bug in Audacity, can really make me feel depressed. Recently I had to take a step back and give myself a vacation from responding to emails to audacity-help for my own sanity (thankfully, other developers and users have done a great job of answering the mail).

Q: How do you feel, and how do you respond when users show up that want specific features found only in specific commercial applications?

A: Actually I don't think that anyone has ever said they wouldn't use Audacity if it didn't work exactly like their favorite proprietary application. Most people are perfectly happy to do things a different way as long as it's equally intuitive and powerful. Sometimes we're able to satisfy users by making Audacity as customizable as possible - for example you can edit all of Audacity's keyboard shortcuts and make them the same as some other program if you want. The other Audacity developers and I came up with our own keyboard shortcuts based on what we thought would be the most intuitive and useful, but users are free to modify that (and they can even save their keyboard layouts as XML and share them with other users).

I've been a Mac user since the very beginning (my parents bought an original Macintosh in 1984) so I've always been a fan of intuitive, "discoverable" interfaces. My main complaint with other audio editors is that too often they are trying to emulate the interfaces of analog mixing boards, which I didn't think was very intuitive for the rest of us. I wanted to create an interface that anyone computer-literate could figure out how to use on their own.

Q: For that matter, even the digital mixing boards are trying to emulate the analog interfaces when they don't really have to. :) Are there any specific areas where you think Audacity could really take advantage of the fact that it's software for a general use computer to make some really nice interface?

A: There are lots of areas where an audio editor could be "smarter" than it is now to save users time. I'd like to see Audacity do automatic beat detection and have an option to snap the selection to the nearest beat boundary, making it easier to cut an entire chorus out of a song without breaking the tempo, for example. I'm sure there are hundreds of other things like that.

If you look closely, you'll see lots of subtle differences in the way that Audacity operates. Unlike almost every other audio program I've seen, Audacity lets you have multiple tracks, each with a different sample format (16-bit/32-bit) and sample rate (44100 Hz, etc) - and Audacity automatically mixes them on the fly. It also has a rather unique built-in amplitude envelope editor, and one of the best frequency analysis views.

Q: How would you define Audacity's target market?

A: Well, it's free, so everyone. Seriously. I'd like Audacity to be good enough to meet the needs of 90% of the users who just want to record a song or an interview, create a mix, convert a tape or LP to CD, etc. Then for everyone who has more advanced needs than that, there are plenty of other tools available - but there's no reason not to keep Audacity around also for the few things that Audacity might do best.

Audacity is a particularly good choice when it's helpful to have a truly cross-platform tool, such as in a mixed-operating-system school computer lab - or when the licensing cost of other tools is prohibitive, such as in third-world countries or at public radio stations.

Q: I understand that Audacity uses a block file approach, where instead of manipulating each track as one large file you guys have broken each track down into many small files. Would you tell us more about this setup? Why did you chose it over other methods? What are the benefits and drawbacks with using block files?

A: Well, to be honest, when I started Audacity I didn't know about Edit Decision Lists. My only experience was with tools like SoundEdit and (early versions of) CoolEdit, both of which were very slow at doing things like Cut, Copy, Paste, and Undo, because they rewrote the entire audio file on disk after each operation.

Q: How about some more information on Edit Decision Lists?

A: An edit decision list is a list of all of the modifications you made to the original audio. The original audio file is left alone, and when you press play, the computer applies all of the edits in real-time to render the audio. This makes editing very fast, since the program is just manipulating a list of edits, but it can increase the amount of processing power required to playback audio in real-time. These days, though, you can do hundreds of edits before you even begin to slow down a modern PC.

I knew I could do better using my Computer Science knowledge, and soon I had worked out a method that involves splitting each track into small pieces - say about 2 MB each. If you allow each piece to be any size from 1 MB to 2 MB, but no smaller or larger, then it turns out you can implement all of the basic editing operations (cut, paste, etc.) without ever having to modify more than 5 pieces ("blocks") at a time. This was what I ended up writing a paper on.

In doing the research for the paper, I learned about Edit Decision Lists and other techniques for nondestructive audio editing. In the end I decided while there were some advantages to EDLs, there were just as many advantages to the blocked-file approach, so it would be better to keep Audacity unique and capitalize on the strengths of this approach, rather than switch to EDLs just to copy everyone else.

One advantage of the blocked-file approach is that you can have multiple "references" to the same data in multiple places. So duplicating a track in Audacity, or creating a loop (using the Repeat effect), are both virtually instantaneous. Also, because Audacity never splits files smaller than about a megabyte, it doesn't slow down trying to playback a region that contains hundreds of edits, which can be a problem with EDL-based editors.

Q: More recently, there has been a bit of buzz over a new back end implementation of Audacity's work code in a library that has been named "Mezzo". Would you tell us a bit about Mezzo?

A: We've been talking about something like Mezzo for years, but Joshua Haberman (one of the earliest Audacity developers) and I finally started working on it a couple months ago. We did a lot of redesigning and rewriting together early on, but now that we're mostly happy with the new design, Joshua has been doing most of the work.

Mezzo is a rewrite of all of the major core features of Audacity aside from the graphical interface. While Audacity is distributed under the terms of the GNU General Public License, which means that the source code can only be borrowed for use in other GPL or GPL-compatible programs, Mezzo will be released under a very unrestrictive BSD-like license that will allow it to be used by almost anyone. We hope that this will encourage many more people to use Mezzo in projects unrelated to Audacity, including commercial products, which will lead to Mezzo being much more robust and stable.

Well, thank you very much Dominic for your time, both in this interview and your time spent bringing us Audacity. It definitely fills a hole for many of us, and as usual, there isn't really any way to properly thank you other than continuing to use and support Audacity.

Audacity can be found at Information on Mezzo can be found in the Audacity Wiki.

Comments (5 posted)

System Applications

Database Software

PostgreSQL Weekly News

The May 25, 2004 edition of the PostgreSQL Weekly News is online with new PostgreSQL database information. "This week saw a swing back toward enhancements to existing systems rather than new functionality, although given that some of these changes will make old functions now usable for new people I guess that is in the eye of the beholder."

Full Story (comments: none)


Samba 3.0.5pre1 Available for Download

Samba Version 3.0.5pre1 is available. "This is the first preview release of the Samba 3.0.5 code base and is provided for testing only. This release is *not* intended for production servers. Use at your own risk. There have been several bug fixes since the 3.0.4 release that we feel are important to make available to the Samba community for wider testings."

Full Story (comments: none)


Common C++ Version 1.1.8

Version 1.1.8 (stable) of Common C++ is out. "Common C++ is a C++ class library that abstracts various system services in a portable manner, thereby making the creation of portable applications much easier. It is portable code, with very low runtime overhead, that works well on a very wide range of target platforms and C++ compilers in everyday use."

Comments (none posted)

libannodex 0.5.66 released

Version 0.5.66 of libannodex, a C library for reading and writing Annodex media, is out. "Annodex is an open standards based technology that extends the World Wide Web's hyperlinking, searching, and compositing infrastructure to time-continuous data, enabling video surfing, searching for clips of audio and video files using ordinary Web search engines, and on-the-fly composition of a video on a Web server from previously annodexed clips."

Full Story (comments: none)

libfishsound 0.6.2 is out

Version 0.6.2 of libfishsound, a library which provides an interface for the Vorbis and Speex audio codecs, is out. This release adds the fish_sound_prepare_truncation() API call and has an improved encdec-audio test.

Full Story (comments: none)

liboggz 0.8.3 released

Version 0.8.3 of liboggz, a C library for working with Ogg compressed audio files and streams, is out with improved Theora parsing, bug fixes, and new documentation.

Full Story (comments: none)

Web Site Development

Latest Release of Back-End CMS (SourceForge)

Version of Back-End CMS has been announced. "Back-End CMS is a flexible, multi-lingual template driven PHP/MySQL CMS which includes in-line editing and text, html, wiki or WYSIWYG editing interfaces. Release is a major release and includes a serious security fix and a great many added features. We have extended our multi-lingual support to offer better support forunicode fonts like Persian, Arabic and Hebrew."

Comments (none posted)

Midgard 1.6.0 beta released

Version 1.6.0 beta of the Midgard Content Management Framework is out. New features include support for multiple languages, support for PAM, an Apache2 module, a PHP4 module that works with Apache 1 and 2, and more.

Full Story (comments: none)

phpWebSite 0.9.3-3 Stable released (SourceForge)

Version 0.9.3-3 Stable of phpWebsite, a web site content management system, has been released. "The focus of this release was to address bugs. There have also been several user submitted patches applied."

Comments (none posted)

Quixote 1.0b2 released

Version 1.0b2 of Quixote, a Python-based web development platform, is out with bug fixes. See the changes document for details.

Comments (none posted)

ZopeMag Weekly News

Issue #31 of the ZopeMag Weekly News has been published. Take a look for news on the Zope web development platform.

Comments (none posted)

Web Services

What's New in WSDL 2.0 (O'Reilly)

Arulazi Dhesiaseelan investigates WSDL 2.0 on O'Reilly. "The WG published its WSDL 2.0 working drafts on 26 March 2004. This is a significant milestone in the progress of WSDL. In this article, I discuss the changes that were made to the WSDL 1.1 specification and other major improvements to the service description language."

Comments (none posted)

Desktop Applications


gnopernicus 0.9.3

Version 0.9.3 of gnopernicus, a screen reader for the visually impaired, is out with a number of new features.

Full Story (comments: none)

Audio Applications

Ardour 0.9beta13 released

Version 0.9beta13 of Ardour, a multi-track audio recording utility, is out. The project status page says: "clearing mantis of as many bug reports as possible". The long-awaited 1.0 version is now projected for release around June 30.

Comments (none posted)

Desktop Environments

KDE-CVS-Digest (KDE.News)

The May 21, 2004 KDE-CVS-Digest is online. Here's the content summary: "Security fixes in URI handlers. KAddressbook now handles IM addresses. Kppp now can handle multiple modem configurations. KUser now can use LDAP, Samba and MD5 Shadow passwords."

Comments (none posted)

Quickies: KDEvibes, Zeroconf, New User Guide, Konqi's Background (KDE.News)

KDE.News has a Quickies posting that list a slew of new and updated applications for KDE.

Comments (none posted)

KDE 3.3 Release Cycle Starts with KDE 3.3 Alpha 1 'Kindergarten' (KDE.News)

KDE 3.3 Alpha 1 'Kindergarten' has been announced. "There won't be any binary packages for this release, everyone using Kindergarten is asked to compile it with --enable-debug, so that we can get valuable feedback."

Comments (none posted)


gEDA News

The latest news from the gEDA project includes a new development snapshot of the Covered Verilog code coverage analysis tool, and a new gEDA talks page with slides from a recent presentation.

Comments (none posted)

XCircuit 3.2.19 released

Version 3.2.19 of XCircuit, an electronic schematic drawing tool, is available. Changes include a new bus notation handling capability and bug fixes.

Comments (none posted)

Financial Applications

Compiere R2.5.1c (SourceForge)

Release 2.5.1c of Compiere, an open-source business application, is available. "Release 2.5.1c is the first release with transactions based on Workflow. In addition to great customization flexibility, it is also a big step towards database independence as Java replaced PL/SQL."

Comments (none posted)


GNOME War Pad 0.3.0 released

Version 0.3.0 of GNOME War Pad, A 'VGA Planets' client for GNOME, is out with lots of enhancements and a few bug fixes.

Full Story (comments: none)

WorldForge Weekly News

The May 21, 2004 edition of the WorldForge Weekly News has been published. Take a look to see the current status of the WorldForge game project.

Comments (none posted)


Gimp-Perl 2.0 Release

Version 2.0 of Gimp-Perl for UNIX/Linux has been announced. This release features a plug-in to selectively sharpen an image, removal of unused plug-ins, bug fixes, and more.

Comments (none posted)

JGraphAddons 0.1 Released (SourceForge)

Version 0.1 of JGraphAddons is available. "This package contains a collection of layout algorithms (radialtree, circle, annealing, gem, moen, spring, sugyiama, tree), graph algebra stuff (shortest path, minimum spanning tree), and a number of useful utilities (mostly cleaned-up code from JGraphpad) for JGraph 4.0."

Comments (none posted)

GUI Packages

PyGTK 2.3.92 unstable released

Version 2.3.92 (unstable) of PyGTK, the Python bindings to GTK, is out. "It includes a number of changes since the last pygtk release; We'd really appreciate testing and bug reports on this release; please take the time out to download and test it to ensure it works for your application[s]."

Full Story (comments: none)


Wine Traffic

Issue #223 of Wine Traffic is online with the latest Wine project development news.

Comments (none posted)

Medical Applications

Care2x PM, Care2x CDS, Care2x HXP are now included (SourceForge)

SourceForge has an announcement for the merging of several projects into the Care2x project. "The Care2x project now becomes an "Integrated Healthcare Environment", not just a hospital information system."

Comments (none posted)

OpenEMR Developer Access - Subversion (LinuxMedNews)

LinuxMedNews has an announcement that states that the OpenEMR Electronic Medical Record system is now available under the Subversion version management system.

Comments (none posted)

Office Suites build 1.1.54

Build 1.1.54 of is out. "This package contains the Gnome integration work for, and a much simplified build wrapper, making an OO.o build / install possible for the common man. It is a staging ground for up-streaming patches to OO.o. This release is mostly a snapshot of the (in-progress) merge of the SuSE patch-set, and adding a SuSE build target / distro etc".

Full Story (comments: none)

Web Browsers

Mozilla Foundation and Opera Software Describe Joint Vision for Web Application Framework (MozillaZine)

MozillaZine reports on a joint effort between Mozilla and Opera Software to standardize Web applications. "The Mozilla Foundation and Opera Software have published a paper outlining their vision for Web applications. The paper, submitted in preparation for next week's W3C Workshop on Web Applications and Compound Documents, describes a device-independent Web application framework based on HTML and backwards-compatible with existing Web content."

Comments (none posted)

Mozilla 1.8 Alpha 1 Released (MozillaZine)

The Alpha 1 version of Mozilla 1.8 has been announced. "New in this release is a basic FTP upload UI, better Linux mouse support, and a number of other features."

Comments (none posted)

New Milestone Schedule Announced (MozillaZine)

MozillaZine mentions the posting of a new Mozilla Milestone Schedule. "The main change is the now longer periods prior to a final release, with two longer Alpha periods, and a longer Beta period. This allows for more time to land large changes and get them stable prior to a final release. Along with these changes, there will now be at least one release candidate prior to each final release."

Comments (none posted)

Word Processors

AbiWord v2.0.7 Released (GnomeDesktop) has the announcement for version 2.0.7 of the AbiWord word processor. "While our current development series is bound to be a great success, we have not forgotten our stable releases. Therefore, the AbiWord development team is proud to release AbiWord v2.0.7. This release benefits greatly from the feature freeze currently active on our development series, which means that all our efforts are focussed on fixing bugs; bugs that might be present the stable versions as well."

Comments (none posted)

AbiWord Weekly News

The May 22, 2004 edition of the AbiWord Weekly News has been published. Read about all of the latest AbiWord word processor developments.

Comments (none posted)


OpenLP 0.993 released (SourceForge)

Version 0.993 of OpenLP, the Open Lyrics Projector, has been released with minor changes. "OpenLP is a powerful lyrics projection application, specifically for use in church worship services. It will include easy & instant switching between slides, customisable backgrounds, a full song database & support for guitar chords and tablature (in v2)."

Comments (none posted)

VXL 1.1 released (SourceForge)

Version 1.1.0 of VXL has been announced. "VXL is a set of multi-platform C++ libraries for computer vision research and deployment."

Comments (none posted)

Languages and Tools


Caml Weekly News

The May 18-25, 2004 edition of the Caml Weekly News is available with the week's Caml language article collection.

Full Story (comments: none)


Haskell Communities and Activities Report

The Haskell Communities & Activities Report for May 25, 2004 is available. Thanks to Duncan Coutts.

Comments (none posted)


Flexible User and Environment Ant Configuration (O'ReillyNet)

Grant Bremer writes about Ant configuration issues on O'Reilly. "Among the many feats it can perform, Ant can save your team from having to have all of the same files in all of the same places. As Grant Bremer illustrates, flexible Ant configurations will make your build work among many developers, operating systems, and will even deploy to app servers with different file structures."

Comments (none posted)

Build distributed object management frameworks for J2EE apps (IBM developerWorks)

Zhengrong Tang works with distributed object management frameworks on IBM's developerWorks. "Many enterprise Java™ technology developers build their own object management infrastructures to improve application performance. However, traditional object pools encounter problems in applications that run across distributed JVMs on multiple physical machines. In this article, Zhengrong Tang presents an object management framework that uses the concept of scopes to handle distributed systems with ease."

Comments (none posted)

FindBugs, Part 1: Improve the quality of your code (IBM developerWorks)

Read about FindBugs on IBM's developerWorks. "Static analysis tools promise to find existing bugs in your code without requiring much effort on the part of the developer. Of course, if you've been programming for long, you know those promises don't always pan out. Even so, good static analysis tools are a valuable addition to your toolbox. In this first of a two-part series, Senior Software Engineer Chris Grindstaff looks at how FindBugs can help improve the quality of your code and eliminate bugs lying in wait."

Comments (none posted)

Nested Classes, Part 2 (O'ReillyNet)

O'Reilly has published part two of a series on Java nested classes. "Robert Simmons continues his efforts to clarify confusion over the use of nested classes in Java. In this week's installment, excerpted from Chapter 6 ("Nested Classes") of Hardcore Java, Robert discusses the somewhat troublesome limited-scope inner classes; one specific type within this category, known as anonymous classes; and the problems programmers encounter with limited-scope classes."

Comments (none posted)


CL-PPCRE 0.7.7 released

CL-PPCRE version 0.7.7,a Perl-compatible regular expression library written in Common Lisp, is available. New features include hyperdoc support, new documentation strings, and bug fixes.

Full Story (comments: none)


This Week on perl5-porters (use Perl)

The May 17-23, 2004 edition of This Week on perl5-porters is online with the latest Perl 5 news.

Comments (none posted)


PHP 4.3.7RC1 released!

Version 4.3.7RC1 of PHP has been announced. "This is the first release candidate and should have a very low number of problems and/or bugs. Nevertheless, please download and test it as much as possible on real-life applications to uncover any remaining issues." Change information is available in the NEWS file.

Comments (none posted)

Writing Scalable Applications with PHP (Linux Journal)

Xavier Spriet continues his Linux Journal series on PHP with the second article. "The first part of this article, "Real-World PHP Security", appeared in the April 2004 issue of Linux Journal and covered the subject of secure PHP development. This article takes you, the professional PHP developer, one step further, by providing detailed explanations and reliable source code that illustrate the steps to follow in order to develop successful PHP applications."

Comments (none posted)


python-ldap 2.0.0 released

Version 2.0.0 of python-ldap is out: "python-ldap provides an object-oriented API to access LDAP directory servers from Python programs. Mainly it wraps the OpenLDAP 2.x libs for that purpose."

Comments (none posted)

Dive Into Python 5.4 released

Version 5.4 of the online Python book Dive Into Python has been published. See the Revision history document for change information.

Comments (none posted)


Dr. Dobb's Tcl-URL!

The May 24, 2004 edition of Dr. Dobb's Tcl-URL! has been published. Take a look for lots of Tcl/Tk article links.

Full Story (comments: none)


Thinking XML: Use the Atom format for syndicating news and more (IBM developerWorks)

Uche Ogbuji introduces Atom on IBM's developerWorks. "The Web has always included sites that present series of articles, events, and other postings which are meant to be shared and cross-referenced. With large parts of the Web becoming conversational communities, many in these communities have come together to work on an XML-based standard for such interchange and cross-reference. Atom is the product of this effort -- a format and API for exchanging Web metadata."

Comments (none posted)

SAX processing in Python (DevChannel)

Derek Fountain explores SAX on DevChannel. " An application developer can choose any one of a number of strategies to read and use an XML document. In some very simple examples a script containing a number of regular expressions might do the job, but normally a more rigorous technique is required. The Simple API for XML (SAX) is one of the two key techniques for analysing and processing XML documents (the other is the more complicated Document Object Model (DOM))."

Comments (none posted)

XML Matters: GUIs and XML configuration data, Part 2 (IBM developerWorks)

David Mertz continues his series on GUI configuration with XML with part two. "He looks at Mozilla's XML-based User Interface Language (XUL) which allows you to write applications that run without any particular dependency on the choice of underlying operating system. This may seem strange at first, but you'll soon see that this Mozilla project offers powerful tools for GUI building that allow you to develop for an extensive base of installed users."

Comments (none posted)

Cross Assemblers

GPICD 0.2-1 is available

Version 0.2-1 of GPICD, a programmer and in-circuit debugger (ICD) for the Microchip PIC micro-controller family, is available on the OpenCollector site. This version works with GTK2, and includes bug fixes.

Comments (none posted)

Test Suites

TET 3.6a adds support for Python

Version 3.6a of TET is out with new support for Python. "The Test Environment Toolkit (TET), is a multi-platform uniform test scaffold, into which non-distributed and distributed test suites can be incorporated. TET supports tests written in C, C++, Perl, Tcl, Shell (sh , bash), Python, POSIX shell and Korn Shell."

Full Story (comments: none)


Prothon gets Major Facelift in Vers 0.1.0

Prothon version 0.1.0 is available. Prothon is: "A classless prototype-based programming language a la Self with the sensibilities of Python."

Full Story (comments: none)

Page editor: Forrest Cook
Next page: Linux in the news>>

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