3 Aubio is a library for real time audio labelling. It can segment a sound at
4 each of its attacks, perform pitch detection and produce midi streams from live
7 Aubio is still in an alpha state. More to come soon, suggestions and feedback
10 A few examples of applications are provided in examples/ and python/:
11 - aubioonset output the onset detected,
12 - aubionotes emits midi-like notes,
13 - aubiocuts is a python script that takes an input sound and creates one new
14 sample at each new onsettimes
16 The first two can work either offline or online, outputing the results on the
17 console or playing a woodblock sound at each detected onset.
19 The name Aubio comes from 'audio' with a typo. It is likely to have many
20 transcription errors in the results too!
24 This package depends on the following libraries and utils:
30 - libasound2 (optional)
31 - python, python-numarray (optional)
32 - swig (optional, for the python interface)
36 The usual invocation `$ ./configure && make' should do the job. Read on the
37 generic INSTALL file for more information.
41 You could try the debian package (see http://piem.homeip.net/~piem/debian/)
43 On Debian you need the following packages to compile aubio: automake
44 libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python python-dev
49 Support has never been tested for Windows or MacOsX. It _could_ work with
50 $ ./configure --enable-alsa=no --enable-jack=no
51 Again, untested. Feedback and patches welcome.
55 The shared library libaubio provides the following tools:
59 - filtering (n pole/zero pairs)
60 - onset detection functions
62 - multicomb-filtering pitchdetection
63 - transient/steady-state separation
64 - alsa midi and jack input outputs
66 A swig wrapper is provided in swig/. For now, I have only been playing with the
67 python interface. But there is much overlap with projects such as pyjack and
68 numeric. To be continued...
70 `Make it run, make it right, make it fast.' [1] Aubio is in the "Make it right"
71 process: almost no optimisation has been done to the code, and its speed could
72 be much improved. The pitch detection is especially slow.
74 [1] see http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast
78 The C API is designed in the following old school way:
80 void del_aubio_thing(aubio_thing_t * t);
81 aubio_thing_t * new_aubio_thing(void * args);
82 audio_thing_methods(aubio_thing_t * t, void * args);
84 Memory allocation or freeing should never take place in these _methods, and
85 should all be bound to the new_ and del_ methods. Also most gcc warning flags
86 are turned on, so functions must be prototyped and variables used.
90 This project is a demo program for my research project. It can be found online
91 at http://piem.homeip.net/~piem/aubio/. I have been writting about the results
92 obtained with aubio in the following papers (that are about to be published!):
94 P. M. Brossier and J. P. Bello and M. D. Plumbley, Real-time temporal
95 segmentation of note objects in music signals, Proceedings of the
96 International Computer Music Conference, 2004, Miami, Florida, ICMA
98 P. M. Brossier and J. P. Bello and M. D. Plumbley, Fast labelling of note
99 objects in music signals, Proceedings of the International Symposium on Music
100 Information Retrieval, 2004, Barcelona, Spain
102 Feel free to drop me a comment at piem@altern.org.