import 0.1.7.1
[aubio.git] / src / aubio.h
1 /*
2          Copyright (C) 2003 Paul Brossier <piem@altern.org>
3
4          This program is free software; you can redistribute it and/or modify
5          it under the terms of the GNU General Public License as published by
6          the Free Software Foundation; either version 2 of the License, or
7          (at your option) any later version.
8
9          This program is distributed in the hope that it will be useful,
10          but WITHOUT ANY WARRANTY; without even the implied warranty of
11          MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12          GNU General Public License for more details.
13
14          You should have received a copy of the GNU General Public License
15          along with this program; if not, write to the Free Software
16          Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17          
18 */
19
20 /** @mainpage 
21  *
22  * \section whatis All starts here ...
23  *
24  *      Aubio (note i need another name for this program) is a small library 
25  *      for audio and control processing. The aim of this project is educative
26  *      (for me, and all the others who might want to use it). The main purpose of
27  *      aubio is to experiment with some bleeding-edge algorithms in a real time
28  *      context. This library targets at being light and portable, and relatively
29  *      fast.
30  *
31  *      aubio is implemented as a library of C units and functions. You can create
32  *      all the C objects you need in your processing function, process those
33  *      objects from a main callback function, and delete them when done.  This
34  *      simple but efficient way makes it easy to write a small wrapper, for
35  *      instance in the python language. (actually, GUIs should probably be build
36  *      with python itself). Writing LADSPA, jmax, pd, or any other like audio
37  *      plugins should be feasible too.
38  *      
39  *      Aubio provides various tools, some of them are listed below. I added the
40  *      names of the original authors and references to corresponding articles
41  *      are in the corresponding source file.
42  *
43  *        - various maths tools
44  *        - phase vocoder 
45  *        - up/downsampling
46  *        - filtering (n pole/zero pairs)
47  *        - onset detection functions
48  *        - onset peak picking
49  *        - multicomb-filtering pitch detection
50  *        - transient/steady-state separation
51  *        - audio and midi devices abstractions (callback)
52  *        - audio and midi files abstractions (various access modes)
53  *
54  *      The midi support is kindly borrowed from the powerful Fluidsynth, written
55  *      by Peter Hanappe.
56  *
57  *      See the README file for more information.
58  *
59  * \section bugs bugs and todo
60  *
61  *      This software is under development. It needs debugging and optimisations.
62  *
63  *  See <a href='bug.html'>bugs</a> and <a href='todo.html'>todo</a> lists.
64  * 
65  */
66
67 #ifndef AUBIO_H
68 #define AUBIO_H
69
70 /**
71  * Global Aubio include file.
72  * Programmers just need to include this file as:
73  *
74  * @code
75  *   #include "aubio.h"
76  * @endcode
77  *
78  * @file aubio.h
79  */
80
81 #ifdef __cplusplus
82 extern "C" {
83 #endif
84
85 /* first the generated config file */
86 #include "config.h"
87  
88 /* in this order */
89 #include "types.h"
90 #include "sample.h"
91 #include "fft.h"
92 #include "phasevoc.h"
93 #include "mathutils.h"
94 #include "scale.h"
95 #include "hist.h"
96 #include "onsetdetection.h"
97 #include "tss.h"
98 #include "resample.h"
99
100 #ifdef JACK_SUPPORT
101 #include "jackio.h"
102 #endif 
103
104 #include "sndfileio.h"
105 #include "peakpick.h"
106 #include "biquad.h"
107 #include "filter.h"
108 #include "pitchdetection.h"
109 #include "pitchmcomb.h"
110 #include "pitchyin.h"
111
112 #include "midi.h"
113 #include "midi_event.h"
114 #include "midi_track.h"
115 #include "midi_player.h"
116 #include "midi_parser.h"
117 #include "midi_file.h"
118 #include "midi_driver.h"
119
120 #ifdef __cplusplus
121 } /* extern "C" */
122 #endif
123
124 #endif
125