Marcelo Cicconet

AudioFeature Library

AudioFeature is a simple library for computing low-level audio descriptors. Some descriptors for which the current version has a corresponding function are the following.

Loudness: sum of the squared magnitudes of the spectrum of frequencies.

Spectral Centroid: barycenter of the magnitudes of the spectrum of frequencies.

Spectral Spread: variance of the magnitudes of the spectrum of frequencies.

Spectral Skewness: 3rd order moment of the magnitudes of the spectrum of frequencies.

Spectral Roll-Off: frequency so that 95% of the signal energy is contained bellow it. It is correlated somehow to the noise cutting frequency.

Spectral Flatness: ratio of the geometric mean to the arithmetic mean of the magnitudes of the spectrum of frequencies. Its a measure of the noisiness (flatness) of the spectrum of the spectrum magnitudes.

Spectral Crest: ratio of the maximum value to the arithmetic mean of the magnitudes of the spectrum of frequencies.

Pre-Chroma: 84 piano frequency energies (from midi note 24 to midi note 107). Entries are in the range [0,1].

Chroma: frequency energies for each of the 12 keys (from C to B). Entries are in the range [0,1].

--

The source code of an implementation in C is available here, under the GNU General Public Licence Version 3.

The source code of an implementation in Objective-C as a framework, is available here, under the MIT Licence. The compiled framework can be downloaded here.

The C version uses the FFTW library for DFT computation and the Libsndfile for reading the bytes of a WAVE file. The Objective-C version uses (Mac OS X) CoreAudio tools for these operations. The C implementation assumes that the audio is sampled at 44100 frames per second. I'm not providing documentation, since I think AudioFeature is small enough for the code to be self explained.

Feedback is very welcome. You can use the e-mail address provided in this site for such purpose.