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. |
---|