src/pitch/pitchschmitt.c: indent
[aubio.git] / README
diff --git a/README b/README
index cc770dad2cd8c6b62eb29581669ea0118a4cc41e..c0e41a1fcca089401cf9e4f007ead1f16dfe1970 100644 (file)
--- a/README
+++ b/README
@@ -1,75 +1,79 @@
 AUBIO LIBRARY 
 
-Aubio is a library for real time audio labelling. It can segment a sound at
-each of its attacks, perform pitch detection and produce midi streams from live
-audio. 
-
-Aubio is still in an alpha state. More to come soon, suggestions and feedback
-welcome.
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio. The name aubio
+comes from 'audio' with a typo: several transcription errors are likely to be
+found in the results too.
 
 A few examples of applications are provided in examples/ and python/: 
+
  - aubioonset output the onset detected, 
  - aubionotes emits midi-like notes,
- - aubiocuts is a python script that takes an input sound and creates one new
-   sample at each new onsettimes
+ - aubiocut is a python script that takes an input sound and creates one new
+   sample at each detected onset or beat,
+ - aubiopitch is a python script to extract pitch tracks from sound files.
+
+aubioonset and aubionotes can work either off-line or online, outputting the
+results on the console or playing a wood-block sound at each detected onset.
+Both Python scripts can plot the results with Gnuplot.
 
-The first two can work either offline or online, outputing the results on the
-console or playing a woodblock sound at each detected onset.
+Aubio is now being used in various projects:
 
-The name Aubio comes from 'audio' with a typo. It is likely to have many
-transcription errors in the results too!
+  - Audacity (http://audacity.sourceforge.net/ , see plugins/audacity)
+  - Wavesurfer (http://www.speech.kth.se/wavesurfer/ , see plugins/wavesurfer)
+  - Puredata (http://puredata.info/ , see plugins/puredata)
+  - Freecycle (http://www.redsteamrecords.com/freecycle/)
+  - Sonic Visualiser (http://www.sonicvisualiser.org)
+  - CLAM (http://clam.iua.upf.edu/)
+
+BUILDING AUBIO
 
-DEPENDANCIES 
+This package depends on the following libraries and utilities: 
 
-This package depends on the following libraries and utils: 
-  - automake1.7
+  - automake 1.8
   - libsndfile1
   - fftw3
   - libsamplerate
   - libjack (optional)
   - libasound2 (optional)
-  - python, python-numarray (optional)
   - swig (>= 1.3, optional, for the python interface)
+  - python, python-gnuplot, python-numarray (optional)
 
-BUILDING AUBIO
-
-The usual invocation `$ ./configure && make' should do the job. Read on the 
+The usual invocation `./configure && make' should do the job. Read on the
 generic INSTALL file for more information.
 
-DEBIAN
-
-You could try the debian package (see http://piem.homeip.net/~piem/debian/)
-
-On Debian you need the following packages to compile aubio: automake
-libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python python-dev
-python-numarray swig
+On a Debian based system, you will need the following packages to compile
+aubio: automake libsndfile1-dev libjack-dev fftw3-dev libsamplerate0-dev python
+python-dev python-numarray swig. Alternatively, you could try the debian
+package (see http://piem.org/debian/).
 
-OTHER PLATFORMS
-
-Support has never been tested for Windows or MacOsX. It _could_ work with
-$ ./configure --enable-alsa=no --enable-jack=no
-Again, untested. Feedback and patches welcome.
+Aubio has been successfully compiled on Mac OS X and can compile on Windows
+using mingw, although cross compiling it from Linux was found much simpler.
+Note that this code was developed and tested on a Linux box.
 
 STATUS
 
 The shared library libaubio provides the following tools:
-  - various maths tools
+
+  - various math utilities
   - phase vocoder 
-  - up/downsampling
+  - up/down-sampling
   - filtering (n pole/zero pairs)
   - onset detection functions
   - onset peak picking
-  - multicomb-filtering pitchdetection
+  - pitch detection functions 
+  - beat tracking function
   - transient/steady-state separation
   - alsa midi and jack input outputs
 
 A swig wrapper is provided in swig/. For now, I have only been playing with the
-python interface. But there is much overlap with projects such as pyjack and
-numeric. To be continued...
+python interface, but swig should make it easy to obtain a wrapper for any
+other supported language, such as Perl or Ruby.
 
-`Make it run, make it right, make it fast.' [1] Aubio is in the "Make it right"
-process: almost no optimisation has been done to the code, and its speed could
-be much improved. The pitch detection is especially slow.
+`Make it run, make it right, make it fast.'[1] Aubio is currently in the "Make
+it right" process. Almost no optimisation has been done to the code, and its
+speed could probably be improved.
 
 [1] see http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast
 
@@ -81,15 +85,21 @@ The C API is designed in the following old school way:
     aubio_thing_t * new_aubio_thing(void * args);
     audio_thing_methods(aubio_thing_t * t, void * args);
 
-Memory allocation or freeing should never take place in these _methods, and
-should all be bound to the new_ and del_ methods. Also most gcc warning flags
-are turned on, so functions must be prototyped and variables used.
+Memory allocation or freeing should never take place in execution function
+(aubio_thing_methods), and should all be bound to the new_ and del_ methods.
+Also, note that most GCC warning flags are turned on, so functions must be
+prototyped, and variables must be used.
 
-CONTACT
+CREDITS
+
+This library gathers music signal processing algorithms designed at the Centre
+for Digital Music and elsewhere. This software project was developed along the
+research I did at the Centre for Digital Music, Queen Mary, University of
+London. Most of this C code was written by myself, starting from published
+papers and existing code. The header files of each algorithm contains brief
+descriptions and references to the corresponding papers.
 
-This project is a demo program for my research project. It can be found online
-at http://piem.homeip.net/~piem/aubio/. I have been writting about the results
-obtained with aubio in the following papers (that are about to be published!):
+Results obtained with aubio were discussed in the following papers:
   
   P. M. Brossier and J. P. Bello and M. D. Plumbley, Real-time temporal
   segmentation of note objects in music signals, Proceedings of the
@@ -99,4 +109,15 @@ obtained with aubio in the following papers (that are about to be published!):
   objects in music signals, Proceedings of the International Symposium on Music
   Information Retrieval, 2004, Barcelona, Spain
 
-Feel free to drop me a comment at piem@altern.org.
+Substantial informations about the algorithms developed in aubio and their
+evaluation are gathered in:
+
+  Paul Brossier, ``Automatic annotation of musical audio for interactive
+  systems'', PhD thesis, Centre for Digital music, Queen Mary University of
+  London, London, UK, 2006.
+
+CONTACT
+
+The home page of this project can be found at http://aubio.org/. Feel free
+to drop me a comment (piem@altern.org) or on the mailing list, aubio@piem.org.
+Suggestions and feedback are most welcome.