[050a8f3] | 1 | aubio library |
---|
| 2 | ============= |
---|
| 3 | |
---|
| 4 | aubio is a library to label music and sounds. It listens to audio signals and |
---|
| 5 | attempts to detect events. For instance, when a drum is hit, at which frequency |
---|
| 6 | is a note, or at what tempo is a rhythmic melody. |
---|
| 7 | |
---|
| 8 | Its features include segmenting a sound file before each of its attacks, |
---|
| 9 | performing pitch detection, tapping the beat and producing midi streams from |
---|
| 10 | live audio. |
---|
| 11 | |
---|
| 12 | aubio provide several algorithms and routines, including: |
---|
| 13 | |
---|
| 14 | - several onset detection methods |
---|
| 15 | - different pitch detection methods |
---|
| 16 | - tempo tracking and beat detection |
---|
| 17 | - MFCC (mel-frequency cepstrum coefficients) |
---|
| 18 | - FFT and phase vocoder |
---|
| 19 | - up/down-sampling |
---|
| 20 | - digital filters (low pass, high pass, and more) |
---|
| 21 | - spectral filtering |
---|
| 22 | - transient/steady-state separation |
---|
| 23 | - sound file and audio devices read and write access |
---|
| 24 | - various mathematics utilities for music applications |
---|
| 25 | |
---|
| 26 | The name aubio comes from _audio_ with a typo: some errors are likely to be |
---|
| 27 | found in the results. |
---|
| 28 | |
---|
| 29 | |
---|
| 30 | Implementation and Design Basics |
---|
| 31 | -------------------------------- |
---|
| 32 | |
---|
| 33 | The library is written in C and is optimised for speed and portability. A |
---|
| 34 | python module to access the library functions is also provided. A few simple |
---|
| 35 | applications are included along with the library: |
---|
| 36 | |
---|
| 37 | - `aubioonset` outputs the time stamp of detected note onsets |
---|
| 38 | - `aubiotempo` does the same for the tempo |
---|
| 39 | - `aubionotes` emits midi-like notes, with an onset, a pitch, and a duration |
---|
| 40 | - `aubiocut` slices an input sound and cuts it in several smaller files, sliced |
---|
| 41 | at each detected onset or beat |
---|
| 42 | - `aubiopitch` attempts to identify a fundamental frequency, or pitch, for each |
---|
| 43 | frame of the input sound |
---|
| 44 | |
---|
| 45 | The C API is designed in the following way: |
---|
| 46 | |
---|
| 47 | aubio_something_t * new_aubio_something (void * args); |
---|
| 48 | audio_something_do (aubio_something_t * t, void * args); |
---|
| 49 | smpl_t aubio_something_get_a_parameter (aubio_something_t *t); |
---|
| 50 | uint_t aubio_something_set_a_parameter (aubio_something_t *t, smpl_t a_parameter); |
---|
| 51 | void del_aubio_something (aubio_something_t * t); |
---|
| 52 | |
---|
| 53 | For performance and real-time operation, no memory allocation or freeing take |
---|
| 54 | place in the `_do` methods. Instead, memory allocation should always take place |
---|
| 55 | in the `new_` methods, whereas free operations are done in the `del_` methods. |
---|
| 56 | |
---|
| 57 | |
---|
| 58 | Installation and Build Instructions |
---|
| 59 | ----------------------------------- |
---|
| 60 | |
---|
| 61 | A number of distributions already include aubio. Check your favorite package |
---|
| 62 | management system, or have a look at the [download |
---|
| 63 | page](http://aubio.org/download). |
---|
| 64 | |
---|
| 65 | aubio uses [waf](https://code.google.com/p/waf/) to configure, compile, and |
---|
| 66 | test the source: |
---|
| 67 | |
---|
| 68 | ./waf configure |
---|
| 69 | ./waf build |
---|
| 70 | sudo ./waf install |
---|
| 71 | |
---|
| 72 | aubio compiles on Linux, Mac OS X, Cygwin, and iPhone. |
---|
| 73 | |
---|
| 74 | |
---|
| 75 | Credits and Publications |
---|
| 76 | ------------------------ |
---|
| 77 | |
---|
| 78 | This library gathers music signal processing algorithms designed at the Centre |
---|
| 79 | for Digital Music and elsewhere. This software project was developed along the |
---|
| 80 | research I did at the Centre for Digital Music, Queen Mary, University of |
---|
| 81 | London. Most of this C code was written by myself, starting from published |
---|
| 82 | papers and existing code. The header files of each algorithm contains brief |
---|
| 83 | descriptions and references to the corresponding papers. |
---|
| 84 | |
---|
| 85 | Special thanks go Juan Pablo Bello, Chris Duxbury, Samer Abdallah, Alain de |
---|
| 86 | Cheveigne for their help and publications. Also many thanks to Miguel Ramirez |
---|
| 87 | and Nicolas Wack for their bug fixing. |
---|
| 88 | |
---|
| 89 | Substantial informations about the algorithms and their evaluation are gathered |
---|
| 90 | in: |
---|
| 91 | |
---|
| 92 | - Paul Brossier, _[Automatic annotation of musical audio for interactive |
---|
| 93 | systems](http://aubio.org/phd)_, PhD thesis, Centre for Digital music, |
---|
| 94 | Queen Mary University of London, London, UK, 2006. |
---|
| 95 | |
---|
| 96 | Additional results obtained with this software were discussed in the following |
---|
| 97 | papers: |
---|
| 98 | |
---|
| 99 | - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Real-time temporal |
---|
| 100 | segmentation of note objects in music signals](http://aubio.org/articles/brossier04fastnotes.pdf), |
---|
| 101 | in _Proceedings of the International Computer Music Conference_, 2004, Miami, |
---|
| 102 | Florida, ICMA |
---|
| 103 | |
---|
| 104 | - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Fast labelling of note |
---|
| 105 | objects in music signals] (http://aubio.org/articles/brossier04fastnotes.pdf), |
---|
| 106 | in _Proceedings of the International Symposium on Music Information Retrieval_, |
---|
| 107 | 2004, Barcelona, Spain |
---|
| 108 | |
---|
| 109 | |
---|
| 110 | Contact Info and Mailing List |
---|
| 111 | ----------------------------- |
---|
| 112 | |
---|
| 113 | The home page of this project can be found at: http://aubio.org/ |
---|
| 114 | |
---|
| 115 | Questions, comments, suggestions, and contributions are welcome. Use the |
---|
| 116 | mailing list: <aubio-user@aubio.org>. |
---|
| 117 | |
---|
| 118 | To subscribe to the list, use the mailman form: |
---|
| 119 | http://lists.aubio.org/listinfo/aubio-user/ |
---|
| 120 | |
---|
| 121 | Alternatively, you can contact directly the author: |
---|
| 122 | |
---|
| 123 | Paul Brossier <piem@aubio.org> |
---|
| 124 | |
---|
| 125 | |
---|
| 126 | Copyright and License Information |
---|
| 127 | --------------------------------- |
---|
| 128 | |
---|
| 129 | Copyright (C) 2003-2013 Paul Brossier <piem@aubio.org> |
---|
| 130 | |
---|
| 131 | aubio is free software: you can redistribute it and/or modify it under the |
---|
| 132 | terms of the GNU General Public License as published by the Free Software |
---|
| 133 | Foundation, either version 3 of the License, or (at your option) any later |
---|
| 134 | version. |
---|