GNU ccAudio2

From GNU Telephony

Revision as of 21:08, 29 October 2010 by Dyfet (Talk | contribs)
Jump to: navigation, search


distributed as:ccaudio2
external links:ccaudio2
license used:GNU GPL 2.1 with Runtime Library Exception
required by:GNU Bayonne
related to:GNU Common C++


GNU ccAudio2 is a stand-alone portable C++ class framework for manipulating audio data. It has existed for some time as GNU GPL licensed package and has most recently been designated a GNU package. 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 desecrate 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 stand-alone as it neither requires or uses any part of GNU Common C++ itself.

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


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 arbitraririly positioning into audio files, such as mp3, which have no fixed size packet structure.


Although stand-alone, online Documentation is maintained as part of the larger class framework documentation for GNU Telephony.


Current releases of GNU ccAudio2 will be found on the site or one of the GNU mirrors. It is also available from the Download Page.

GNU ccAudio2 may be available from other sites in various "package" formats, including GNU/Linux "RPM" and "deb" 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.


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. Anonymous cvs access is maintained for GNU ccaudio thru savannah, and I would be happy to receive and evaluate patches for inclusion in future releases. A standard e-mail mailing list for GNU ccAudio will be available shortly at Feel free to send any bug reports, patches, and questions to this list.

Personal tools