SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

AUBIO LIBRARY

Aubio is a library for real time 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.

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

  • aubioonset output the onset detected,
  • aubionotes emits midi-like notes,
  • aubiocut is a python script that takes an input sound and creates one new sample at each detected onset or beat,
  • aubiopitch is a python script to extract pitch tracks from sound files.

aubioonset and aubionotes can work either off-line or online, outputting the results on the console or playing a wood-block sound at each detected onset. Both Python scripts can plot the results with Gnuplot.

Aubio is now being used in various projects:

BUILDING AUBIO

This package depends on the following libraries and utilities:

  • automake 1.8
  • libsndfile1
  • fftw3
  • libsamplerate
  • libjack (optional)
  • libasound2 (optional)
  • swig (>= 1.3, optional, for the python interface)
  • python, python-gnuplot, python-numarray (optional)

The usual invocation `./configure && make' should do the job. Read on the generic INSTALL file for more information.

On a Debian based system, you will need the following packages to compile aubio: automake libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python python-dev python-numarray swig. Alternatively, you could try the debian package (see http://piem.org/debian/).

Aubio has been successfully compiled on Mac OS X and can compile on Windows using mingw, although cross compiling it from Linux was found much simpler. Note that this code was developed and tested on a Linux box.

STATUS

The shared library libaubio provides the following tools:

  • various math utilities
  • phase vocoder
  • up/down-sampling
  • filtering (n pole/zero pairs)
  • onset detection functions
  • onset peak picking
  • pitch detection functions
  • beat tracking function
  • transient/steady-state separation
  • alsa midi and jack input outputs

A swig wrapper is provided in swig/. For now, I have only been playing with the python interface, but swig should make it easy to obtain a wrapper for any other supported language, such as Perl or Ruby.

`Make it run, make it right, make it fast.'[1] Aubio is currently in the "Make it right" process. Almost no optimisation has been done to the code, and its speed could probably be improved.

[1] see http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast

EXTEND

The C API is designed in the following old school way:

void del_aubio_thing(aubio_thing_t * t); aubio_thing_t * new_aubio_thing(void * args); audio_thing_methods(aubio_thing_t * t, void * args);

Memory allocation or freeing should never take place in execution function (aubio_thing_methods), and should all be bound to the new_ and del_ methods. Also, note that most GCC warning flags are turned on, so functions must be prototyped, and variables must be used.

CREDITS

This library gathers music signal processing algorithms designed at the Centre for Digital Music and elsewhere. This software project was developed along the research I did at the Centre for Digital Music, Queen Mary, University of London. Most of this C code was written by myself, starting from published papers and existing code. The header files of each algorithm contains brief descriptions and references to the corresponding papers.

Results obtained with aubio were discussed in the following papers:

P. M. Brossier and J. P. Bello and M. D. Plumbley, Real-time temporal segmentation of note objects in music signals, Proceedings of the International Computer Music Conference, 2004, Miami, Florida, ICMA

P. M. Brossier and J. P. Bello and M. D. Plumbley, Fast labelling of note objects in music signals, Proceedings of the International Symposium on Music Information Retrieval, 2004, Barcelona, Spain

Substantial informations about the algorithms developed in aubio and their evaluation are gathered in:

Paul Brossier, ``Automatic annotation of musical audio for interactive systems'', PhD thesis, Centre for Digital music, Queen Mary University of London, London, UK, 2003.

CONTACT

The home page of this project can be found at http://aubio.piem.org/. Feel free to drop me a comment (piem@altern.org) or on the mailing list, aubio@piem.org. Suggestions and feedback are most welcome.


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.