From e604630ceca0493bb9ac45bb53fe99ecb921a4e7 Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Thu, 18 May 2006 19:00:02 +0000 Subject: [PATCH] update README update README --- README | 115 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 47 deletions(-) diff --git a/README b/README index cc770dad..bc3d6f87 100644 --- a/README +++ b/README @@ -1,75 +1,79 @@ 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 @@ -81,15 +85,21 @@ The C API is designed in the following old school way: 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 @@ -99,4 +109,15 @@ obtained with aubio in the following papers (that are about to be published!): 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. -- 2.26.2