GNU ccAudio2


GNU ccAudio2 is a standalone portable C++ class framework for manipulating audio data. It had existed for some time as a GNU GPL licensed package, and was designated a GNU package in 2007. It is commonly used in GNU Bayonne.

GNU ccAudio2 offers platform-independent classes for directly accessing audio files from disk. These classes are endian-aware and also, unlike some audio file manipulation libraries, content-format aware; ccAudio treats audio as an array of discreet sample points rather than simply as binary data. ccAudio can also manipulate header information such as annotations. GNU ccAudio2 supports Sun audio, raw samples, and RIFF-encoded audio data.

In addition to manipulating audio thru disk files, GNU ccAudio2 can provide audio processing of sample sets in memory. This includes generation of pure tones, energy measurement of audio packets, and software codec conversions. GNU ccAudio2 includes a framework for developing plugin audio codecs, and is intended to be a carrier for freely licensed audio codecs, as well as to expand into a general purpose audio/signal processing C++ library.

GNU ccAudio2 follows conventions from GNU Common C++, and uses GNU Common C++ configuration and macros to assure portability for both POSIX and Win32-based systems. However, current releases of GNU ccAudio2 are usable standalone as they neither require nor use any part of Common C++ itself.

GNU ccAudio2 also includes a standalone command-line utility, audiotool. This can be used to convert and manipulate audio files, using functions from the GNU ccAudio2 library.


[2017] – The latest release is ccAudio2 2.2.0.

[2007] – The current releases of GNU ccAudio2 have focused on expanding audio processing features and improving codec plugin support. Sample rate conversion has become part of recent releases, as well as new codecs for G.721 ADPCM and Oki/VOX ADPCM. Changes are being made in how codec plugins interact with the AudioStream class to better support packet synchronization when arbitrarily positioning into audio files, such as MP3, which have no fixed size packet structure.


Current releases of GNU ccAudio2 are found on the GNU FTP site or one of its mirrors. Please use a nearby mirror if you can.

GNU ccAudio2 may be available from other sites in various package formats, including GNU/Linux RPM and Debian packages, .pkg files under various Unix operating systems, etc. I do encourage people to distribute GNU ccAudio2 in a package form where convenient for installation, so long as source is also made available.


Although standalone, online class framework documentation is available as part of the larger class framework documentation for GNU Telephony.


As the current GNU ccAudio maintainer, I am very open to bringing new ideas and code into GNU ccAudio. In particular, I am looking for help from contributors for adding things like additional codecs and basic FFT operations. The source code repositories can be accessed anonymously through the GNU ccAudio project on Savannah; I would be happy to receive and evaluate patches for inclusion in future releases.

The developers' mailing list is <>. It has a web interface for subscribing, modifying subscription options and searching the list archives. Feel free to send any bug reports, patches, and questions to this list.

This page was retrieved from the Wayback Machine archive of the GNU Telephony website (licensed under the Free Documentation License 1.3), and slightly edited.