source: README @ bd24069

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since bd24069 was e8830c4, checked in by Paul Brossier <piem@altern.org>, 18 years ago

correct date of thesis references
correct date of thesis references

  • Property mode set to 100644
File size: 4.8 KB
Line 
1AUBIO LIBRARY
2
3Aubio is a library for real time audio labelling. Its features include
4segmenting a sound file before each of its attacks, performing pitch detection,
5tapping the beat and producing midi streams from live audio. The name aubio
6comes from 'audio' with a typo: several transcription errors are likely to be
7found in the results too.
8
9A few examples of applications are provided in examples/ and python/:
10
11 - aubioonset output the onset detected,
12 - aubionotes emits midi-like notes,
13 - aubiocut is a python script that takes an input sound and creates one new
14   sample at each detected onset or beat,
15 - aubiopitch is a python script to extract pitch tracks from sound files.
16
17aubioonset and aubionotes can work either off-line or online, outputting the
18results on the console or playing a wood-block sound at each detected onset.
19Both Python scripts can plot the results with Gnuplot.
20
21Aubio is now being used in various projects:
22
23  - Audacity (http://audacity.sourceforge.net/ , see plugins/audacity)
24  - Wavesurfer (http://www.speech.kth.se/wavesurfer/ , see plugins/wavesurfer)
25  - Puredata (http://puredata.info/ , see plugins/puredata)
26  - Freecycle (http://www.redsteamrecords.com/freecycle/)
27  - Sonic Visualiser (http://www.sonicvisualiser.org)
28  - CLAM (http://clam.iua.upf.edu/)
29
30BUILDING AUBIO
31
32This package depends on the following libraries and utilities:
33
34  - automake 1.8
35  - libsndfile1
36  - fftw3
37  - libsamplerate
38  - libjack (optional)
39  - libasound2 (optional)
40  - swig (>= 1.3, optional, for the python interface)
41  - python, python-gnuplot, python-numarray (optional)
42
43The usual invocation `./configure && make' should do the job. Read on the
44generic INSTALL file for more information.
45
46On a Debian based system, you will need the following packages to compile
47aubio: automake libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python
48python-dev python-numarray swig. Alternatively, you could try the debian
49package (see http://piem.org/debian/).
50
51Aubio has been successfully compiled on Mac OS X and can compile on Windows
52using mingw, although cross compiling it from Linux was found much simpler.
53Note that this code was developed and tested on a Linux box.
54
55STATUS
56
57The shared library libaubio provides the following tools:
58
59  - various math utilities
60  - phase vocoder
61  - up/down-sampling
62  - filtering (n pole/zero pairs)
63  - onset detection functions
64  - onset peak picking
65  - pitch detection functions
66  - beat tracking function
67  - transient/steady-state separation
68  - alsa midi and jack input outputs
69
70A swig wrapper is provided in swig/. For now, I have only been playing with the
71python interface, but swig should make it easy to obtain a wrapper for any
72other supported language, such as Perl or Ruby.
73
74`Make it run, make it right, make it fast.'[1] Aubio is currently in the "Make
75it right" process. Almost no optimisation has been done to the code, and its
76speed could probably be improved.
77
78[1] see http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast
79
80EXTEND
81
82The C API is designed in the following old school way:
83
84    void del_aubio_thing(aubio_thing_t * t);
85    aubio_thing_t * new_aubio_thing(void * args);
86    audio_thing_methods(aubio_thing_t * t, void * args);
87
88Memory allocation or freeing should never take place in execution function
89(aubio_thing_methods), and should all be bound to the new_ and del_ methods.
90Also, note that most GCC warning flags are turned on, so functions must be
91prototyped, and variables must be used.
92
93CREDITS
94
95This library gathers music signal processing algorithms designed at the Centre
96for Digital Music and elsewhere. This software project was developed along the
97research I did at the Centre for Digital Music, Queen Mary, University of
98London. Most of this C code was written by myself, starting from published
99papers and existing code. The header files of each algorithm contains brief
100descriptions and references to the corresponding papers.
101
102Results obtained with aubio were discussed in the following papers:
103 
104  P. M. Brossier and J. P. Bello and M. D. Plumbley, Real-time temporal
105  segmentation of note objects in music signals, Proceedings of the
106  International Computer Music Conference, 2004, Miami, Florida, ICMA
107
108  P. M. Brossier and J. P. Bello and M. D. Plumbley, Fast labelling of note
109  objects in music signals, Proceedings of the International Symposium on Music
110  Information Retrieval, 2004, Barcelona, Spain
111
112Substantial informations about the algorithms developed in aubio and their
113evaluation are gathered in:
114
115  Paul Brossier, ``Automatic annotation of musical audio for interactive
116  systems'', PhD thesis, Centre for Digital music, Queen Mary University of
117  London, London, UK, 2006.
118
119CONTACT
120
121The home page of this project can be found at http://aubio.piem.org/. Feel free
122to drop me a comment (piem@altern.org) or on the mailing list, aubio@piem.org.
123Suggestions and feedback are most welcome.
Note: See TracBrowser for help on using the repository browser.