[96fb8ad] | 1 | AUBIO LIBRARY |
---|
| 2 | |
---|
| 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 |
---|
| 5 | audio. |
---|
| 6 | |
---|
| 7 | Aubio is still in an alpha state. More to come soon, suggestions and feedback |
---|
| 8 | welcome. |
---|
| 9 | |
---|
| 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 |
---|
| 15 | |
---|
| 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. |
---|
| 18 | |
---|
| 19 | The name Aubio comes from 'audio' with a typo. It is likely to have many |
---|
| 20 | transcription errors in the results too! |
---|
| 21 | |
---|
| 22 | DEPENDANCIES |
---|
| 23 | |
---|
| 24 | This package depends on the following libraries and utils: |
---|
| 25 | - automake1.7 |
---|
| 26 | - libsndfile1 |
---|
| 27 | - fftw3 |
---|
| 28 | - libsamplerate |
---|
| 29 | - libjack (optional) |
---|
| 30 | - libasound2 (optional) |
---|
| 31 | - python, python-numarray (optional) |
---|
| 32 | - swig (optional, for the python interface) |
---|
| 33 | |
---|
| 34 | BUILDING AUBIO |
---|
| 35 | |
---|
| 36 | The usual invocation `$ ./configure && make' should do the job. Read on the |
---|
| 37 | generic INSTALL file for more information. |
---|
| 38 | |
---|
| 39 | DEBIAN |
---|
| 40 | |
---|
| 41 | You could try the debian package (see http://piem.homeip.net/~piem/debian/) |
---|
| 42 | |
---|
| 43 | On Debian you need the following packages to compile aubio: automake |
---|
| 44 | libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python python-dev |
---|
| 45 | python-numarray swig |
---|
| 46 | |
---|
| 47 | OTHER PLATFORMS |
---|
| 48 | |
---|
| 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. |
---|
| 52 | |
---|
| 53 | STATUS |
---|
| 54 | |
---|
| 55 | The shared library libaubio provides the following tools: |
---|
| 56 | - various maths tools |
---|
| 57 | - phase vocoder |
---|
| 58 | - up/downsampling |
---|
| 59 | - filtering (n pole/zero pairs) |
---|
| 60 | - onset detection functions |
---|
| 61 | - onset peak picking |
---|
| 62 | - multicomb-filtering pitchdetection |
---|
| 63 | - transient/steady-state separation |
---|
| 64 | - alsa midi and jack input outputs |
---|
| 65 | |
---|
| 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... |
---|
| 69 | |
---|
| 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. |
---|
| 73 | |
---|
| 74 | [1] see http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast |
---|
| 75 | |
---|
| 76 | EXTEND |
---|
| 77 | |
---|
| 78 | The C API is designed in the following old school way: |
---|
| 79 | |
---|
| 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); |
---|
| 83 | |
---|
| 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. |
---|
| 87 | |
---|
| 88 | CONTACT |
---|
| 89 | |
---|
| 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!): |
---|
| 93 | |
---|
| 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 |
---|
| 97 | |
---|
| 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 |
---|
| 101 | |
---|
| 102 | Feel free to drop me a comment at piem@altern.org. |
---|