AUBIO LIBRARY
-Aubio is a library for real time audio labelling. It can segment a sound at
-each of its attacks, perform pitch detection and produce midi streams from live
-audio.
-
-Aubio is still in an alpha state. More to come soon, suggestions and feedback
-welcome.
+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,
- - aubiocuts is a python script that takes an input sound and creates one new
- sample at each new onsettimes
+ - 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.
-The first two can work either offline or online, outputing the results on the
-console or playing a woodblock sound at each detected onset.
+Aubio is now being used in various projects:
-The name Aubio comes from 'audio' with a typo. It is likely to have many
-transcription errors in the results too!
+ - Audacity (http://audacity.sourceforge.net/ , see plugins/audacity)
+ - Wavesurfer (http://www.speech.kth.se/wavesurfer/ , see plugins/wavesurfer)
+ - Puredata (http://puredata.info/ , see plugins/puredata)
+ - Freecycle (http://www.redsteamrecords.com/freecycle/)
+ - Sonic Visualiser (http://www.sonicvisualiser.org)
+ - CLAM (http://clam.iua.upf.edu/)
+
+BUILDING AUBIO
-DEPENDANCIES
+This package depends on the following libraries and utilities:
-This package depends on the following libraries and utils:
- - automake1.7
+ - automake 1.8
- libsndfile1
- fftw3
- libsamplerate
- libjack (optional)
- libasound2 (optional)
- - python, python-numarray (optional)
- swig (>= 1.3, optional, for the python interface)
+ - python, python-gnuplot, python-numarray (optional)
-BUILDING AUBIO
-
-The usual invocation `$ ./configure && make' should do the job. Read on the
+The usual invocation `./configure && make' should do the job. Read on the
generic INSTALL file for more information.
-DEBIAN
-
-You could try the debian package (see http://piem.homeip.net/~piem/debian/)
-
-On Debian you need the following packages to compile aubio: automake
-libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python python-dev
-python-numarray swig
+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/).
-OTHER PLATFORMS
-
-Support has never been tested for Windows or MacOsX. It _could_ work with
-$ ./configure --enable-alsa=no --enable-jack=no
-Again, untested. Feedback and patches welcome.
+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 maths tools
+
+ - various math utilities
- phase vocoder
- - up/downsampling
+ - up/down-sampling
- filtering (n pole/zero pairs)
- onset detection functions
- onset peak picking
- - multicomb-filtering pitchdetection
+ - 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 there is much overlap with projects such as pyjack and
-numeric. To be continued...
+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 in the "Make it right"
-process: almost no optimisation has been done to the code, and its speed could
-be much improved. The pitch detection is especially slow.
+`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
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 these _methods, and
-should all be bound to the new_ and del_ methods. Also most gcc warning flags
-are turned on, so functions must be prototyped and variables used.
+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.
-CONTACT
+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.
-This project is a demo program for my research project. It can be found online
-at http://piem.homeip.net/~piem/aubio/. I have been writting about the results
-obtained with aubio in the following papers (that are about to be published!):
+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
objects in music signals, Proceedings of the International Symposium on Music
Information Retrieval, 2004, Barcelona, Spain
-Feel free to drop me a comment at piem@altern.org.
+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.