aubio

a library for audio labelling

Welcome to homepage of the aubio project.

What is aubio ?

aubio is a library for audio labelling. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. The name aubio comes from 'audio' with a typo: several transcription errors are likely to be found in the results too.

The aim of this project is to provide these automatic labelling features to other audio softwares. Functions can be used offline in sound editors and software samplers, or online in audio effects and virtual instruments.

Implementation

aubio is written in C. The functions can be called from C++, and a wrapper has been written using SWIG. The python interface is already usable, and it would probably be a matter of seconds to add access to the other languages supported by SWIG (including perl, java and many more).

Currently, aubio depends on libsndfile, libsamplerate and FFTW. On Linux platforms, aubio can be built using JACK, and ALSA.

Who is it made for ?

aubio has been built to be used by audio developpers to add high level feature extraction to their softwares. Because these tasks are difficult, we thought it was important to gather them in a dedicated library. To increase the fun, we have made these algorithms work in a causal or almost causal way, so as to be used in real time applications with as low delay as possible.

Features

Functions implemented in the library include:

Aubio is now being used in various projects:

A few examples of applications are provided in examples/ and python/:

aubioonset
outputs the onset detected
aubionotes
uses both onset and pitch to extract symbolic music data from an audio source and emit MIDI like data.
aubiocut
a python script that takes an input sound and creates one new sample at each detected onset or beat. The slices produced by aubiocut are useful for use with a sequencer such as Hydrogen.
aubiopitch
a python script to extract pitch tracks from sound files

How did it happen ?

The library has been developed at the Centre for Digital Music at Queen Mary College, University of London. The project started as a proof of concept for the implementation of existing DSP algorithms as real time applications.

Related projects

Many tools have been developed for analysis purposes. Examples include:

fiddle~ and bonk~
by Miller Puckette, pitch and onset detectors written for Pure Data and described in Miller's 1998 ICMC paper.
BBCut
by Nick Collins, onset detection functions written for the SuperCollider environment.

Other related projects include:

SoundTouch
by Olli Parviainen. A library for "changing the Tempo, Pitch and Playback Rates of audio streams or files"

See also the list of projects related to aubio I am compiling.

References

Various research projects are using the analysis features of aubio. The following publications have been written about this project:

P. Brossier, J. P. Bello and M. D. Plumbley. Real-time temporal segmentation of note objects in music signals, in Proceedings of the International Computer Music Conference (ICMC 2004), Miami, Florida, USA, November 1-6, 2004.
Abstract: Segmenting note objects in a real time context is useful for live performances, audio broadcasting, or object-based coding. This temporal segmentation relies upon the correct detection of onsets and offsets of musical notes, an area of much research over recent years. However the low-latency requirements of real-time systems impose new, tight constraints on this process. In this paper, we present a system for the seg- mentation of note objects with very short delays, using recent developments in onset detection, specially modified to work in a real-time context. A portable and open C implementation is presented.
P. Brossier, J. P. Bello and M. D. Plumbley. Fast labelling of notes in music signals, in Proceedings of the 5th International Conference on Music Information Retrieval (ISMIR 2004), Barcelona, Spain, October 10-14, 2004.
Abstract: We present a new system for the estimation of note attributes from a live monophonic music source, within a short time delay and without any previous knowledge of the signal. The labelling is based on the temporal segmentation and the successive estimation of the fundamental frequency of the current note object. The setup, implemented around a small C library, is directed at the robust note segmentation of a variety of audio signals. A system for evaluation of performances is also presented. The further extension to polyphonic signals is considered, as well as design concerns such as portability and integration in other software environments.

License

aubio is a free and open source software released under the GNU/GPL license.

Mailing-list

The project now has a mailing list: aubio@piem.org. You can subscribe to the list by writing a mail to aubio-subscribe@piem.org.

Update (Sat May 27 2006): the list archives are now available.

Contact

You can also send your comments and suggestions directly to Paul Brossier. Feedback is most welcome.

xhtml | css | debian