If you have questions about the architectural design of Audacity, please post them here and the developers will answer them.
Related information is available here:
- HowAudacityWorks describes some of the algorithms used within Audacity.
- AudacityLibraries describes the purpose of the individual groups of tools and code known as Libraries that are combined together to make Audacity.
Diagram of Audacity System Architecture
Items marked with a * are not released yet and are only available from the latest version of Audacity in CVS head by enabling experimental features. If you are a developer of Audacity and think this diagram needs updating, please leave a message on James' home page. I have a program that makes updating the diagram quick and easy and I can make extensions and corrections to the diagram if they are useful. James 11:55, 25 August 2007 (PDT)
Cross Platform Library
Q: What widgets/controls library are you using, in order to be cross-platform?
A: wxwidgets: http://www.wxwidgets.org/
Real Time Ability
Q: Are there any plans to add any real-time DSP (Digital Signal Processing) to Audacity? It really helps when you can tweak plugin settings as the audio is playing.
A: Agree. I'd love to see 'Postfish' (written by Monty) integrated into Audacity. It's a big change and needs to happen in evolutionary steps. I have a proposed route to it, which would start by providing a single effect, echo, as a real time effect. James 8th-March-07
Q: How can I get an overview of Audacity's architecture?
A: Download the source from CVS. Run Doxygen to get the brief class descriptions. Look at the subdivision into libraries that are outside the GUI. Ask questions here or on the development list.
We're using Doxygen lightly, only at the level of classes, with no intention of covering the functions too, so don't expect a greater level of detail than the class list. The class list goes into more detail than the diagram above. You can get the same class information by browsing the source code. The class descriptions are all there in the source code. They are at the start of the cpp files. You don't need to run Doxygen to find this information. Use Doxygen if you already know it and like what it does.