Libraries are groups of tools and programming code that are combined together to make Audacity.
Related information is available here:
- HowAudacityWorks describes some of the algorithms used within Audacity.
- ArchitecturalDesign describes the structure of the Audacity system architecture.
The following libraries are used in Audacity:
- PortAudio - Cross-platform audio I/O library.
- PortMixer - Cross-platform Audio Mixer library (sound level controls, input source selection)
- - Cross-platform MIDI I/O library
- - MP3 uncompression.
- LibId3Tag - Tags for MP3, part of LibMad
- - Lossless audio compression and uncompression library
- and - Fully open source audio compression library, similar to MP3 but free from patents.
- libsndfile - Importing and exporting a wide range of uncompressed audio formats.
- SoundTouch - effects to change either the pitch or tempo of audio without changing the other.
- libnyquist - A language based on LISP with support for functions on sounds.
- libresample - high-quality sample rate conversion
- - Alternative GPL sample rate conversion.
- - Cross-platform GUI development library and general cross-platform development tools.
- - cross-platform audio plug-in architecture
There are also plans to make the structure of Audacity more modular by 'factoring out' library material. These plans often end up on the back burner.
- LibAudacity - A proposed sound file manipulation library with no GUI functionality.
- LibApp - GUI components that could be fed back to wxWindows team as enhancements, for example the code in Audacity which handles key and mouse bindings, docking toolbars, buttons that change state when you hover over them are general GUI elements that would be useful to other application builders.