7023719db969cf1705b28aa14ef8d559aa06cbce
[aubio.git] / ChangeLog
1 2013-12-08  Paul Brossier <piem@aubio.org>
2
3         * Overdue: After more than five years of development behind the curtain,
4         time has come to release a new version of aubio.
5
6         * General: The library has been completely revised since 0.3.2. The API has
7         seen a major clean up, and has been thoroughly tested. The following list of
8         changes is not exhaustive.
9
10         * Memory management: allocation and freeing of memory has been optimized in
11         many ways. Several memory leaks and out of bound access have been fixed.
12
13         * Optimization: the FFT, central to most algorithm, can now be computed
14         using different optimized algorithms, depending on what is available on your
15         platform (FFTW, Ooura, or vDSP). Other simple optimization tricks are
16         included. Most can be deactivated by configuring the build accordingly.
17
18         * python/: The python interface has been completely rewritten to use numpy C
19         interface, making the aubio python module order of magnitudes faster than
20         the previous version. Several demos and tests are included.
21
22         * src/: source and header files are now organized in sub-directories.
23
24         * src/io/source.h: new source readers can now use any or all of libav,
25         CoreAudio, and libsndfile. This means that aubio can now easily read most
26         uncompressed and compressed formats. Compiled with libav, aubio can also
27         read audio from video files, and over the network.
28
29         * src/io/sink.h: a new sink object lets you write wav files with any number
30         of channels, at any samplerate, using libsndfile or CoreAudio.
31
32         * src/onset, src/tempo/, src/pitch: the different methods for onset, tempo,
33         and pitch extraction have seen many bug-fixes and optimizations.
34
35         * src/spectral/specdesc.h: new onset distances and statistical measures have
36         been added.
37
38         * src/spectral/filterbank.h: new filter bank to compute the energy in any
39         custom-defined frequency bands.
40
41         * src/spectral/mfcc.h, examples/aubiomfcc.c: a standard implementation of
42         the Mel-Frequency Cepstrum Coefficients algorithm has been added.
43
44         * src/temporal/{a,c}_weighting.h: standard implementation of the C-weighting
45         and A-weighting pre-processing filters are now provided for most commons
46         sampling rates.
47
48         * src/synth/wavetable.h, src/synth/sampler.h: provide basic ways to generate
49         some sounds.
50
51         * src/fvec.h: fvec_t, the vector object central to most aubio algorithms, is
52         now single channel. This simplifies the code of each algorithm greatly.
53
54         * src/lvec.h: lvec_t provides a double precision vector, required for some
55         operations to avoid floating point overflow
56
57         * src/fmat.h: fmat_t provides a single precision matrix, useful for
58         multi-channel operations and to some algorithms such as the spectral filter
59         bank.
60
61         * examples/: several new options, including new programs, have been
62         included. Refer to the documentation for details.
63
64         * tests/: several tests and examples programs have been added. This should
65         be a good place to look at to understand how to use aubio.
66
67         * doc/web.cfg: a simplified Doxygen configuration produces a simpler html
68         documentation.
69
70         * doc/*.txt: the manpages have been rewritten for txt2man.
71
72         * Build system: the build system has been switched from autotools/automake
73         to waf. Type './waf' or see README.md for instructions on how to use waf.
74
75 2006-11-10  Paul Brossier <piem@altern.org>
76         * configure.ac: check c compiler for -Wextra option
77         * examples/*: add lash support to aubioonset, aubiotrack, and aubionotes
78         * */Makefile.am: improve compilation on Mac OS X, mingw and cygwin
79         * src/{onset,tempo}.[ch]: add simple c interfaces to onset and tempo tasks
80         * src/beattracking.c: allow the use of two beat trackers simultaneously
81         * examples/tests: add test programs for most c functions
82         * src/*.c: add most missing free calls
83         * src/*.c: fix some out of array writes
84         * src/,ext/: more gcc warning fixes
85
86 2006-27-06  Paul Brossier <piem@altern.org>
87         * plugins/puredata/Makefile.am: move pd help to pattern-help.pd
88                 - thanks goes to Frank Barknecht
89         * ext/sndfileio.c src/aubio_priv.h: fixes memset in aubio_priv.h, remove
90                 useless sfinfo.format=0 - thanks karsten wiese 
91         * ext/midi/midi_alsa_seq.c: do not call pthread_ in aubio_midi_direct_output
92                 - thanks karsten wiese
93         * python/aubio/task/beat.py: task beat() output seconds
94         * python/aubio/task/beat.py: ugly hack to plot beat track anyway
95         * examples/aubionotes.c: fix signed/unsigned mismatches in examples
96         * src/beattracking.c: fix signed/unsigned mismatches in beattracking
97         * src/pitchfcomb.c: fix signed/unsigned mismatches in pitchfcomb
98         * src/pitchschmitt.c: fix signed/unsigned mismatches in pitchscmitt
99         * configure.ac: use -Wextra but unused parameters, fix macos CFLAGS
100         * plugins/puredata/Makefile.am: simplify puredata Makefile.am
101         * python/aubio/Makefile.am: avoid overwriting CFLAGS
102         * examples/Makefile.am: use top_{build,src}dir instead of ../
103         * configure.ac: make configure.ac more readable
104         * python/aubio/task/cut.py: use os.path to derive default output filenames
105         * VERSION: 0.3.1
106
107 2006-18-05 Paul Brossier <piem@altern.org>
108         * src/pitchyinfft.{c,h}: new pitch detection method
109         * src/beattracking.c: algorithm improved
110         * plugins/puredata/: new puredata external
111         * python/tasks: enhancements to the onset detection algorithms
112         * python/aubiocut: improved, can now slice at beats and silences
113         * python/aubiopitch: new python program to extract pitch tracks
114         * python/: plotting features for aubiocut and aubiopitch
115         * python/: interface refactored
116         * doc/: updated documentation 
117         * VERSION: 0.3.0
118
119 2006-18-05  Paul Brossier <piem@altern.org>
120         * src/beattracking.c: added beattracking.c
121         * various bug fixes
122         * VERSION: 0.2.0
123
124 2005-29-03  Paul Brossier <piem@altern.org>
125         * python/aubio/gnuplot.py: clean up and add plotsound
126         * python/aubiocompare-onset: updated
127         * examples/aubioonset.c: fix text output when nframes<4 
128         * ext/midi/midi_file.c: by default, int is unsigned on powerpc
129         * python/aubiocut, python/aubio/aubioclass.py: updated
130         * ext/midi/midi_alsa_seq.c: activated threading
131         * configure.ac,Makefile.am: added rules to check presence
132          of swig, python, puredata and docbook-to-man.
133
134 2005-17-03  Paul Brossier <piem@altern.org>
135         * examples/utils.{c,h}:  corrected usedoubled and -O interactions
136         * examples/aubioonset.c: added frames>=4 check (thanks Hamish Allan)
137
138 2004-12-11  Paul Brossier <piem@altern,org>
139         * swig/Makefile.am: instructions moved to python/aubio and cleaned 
140         * python/aubiocut: corrected slicing on multichannel files
141         * VERSION: bumped to 0.1.8
142
143 2004-12-06  Paul Brossier <piem@altern.org>
144         * examples/{midi*,testforclam}.c: removed
145         * src/{sndfile,midi*,jackio}.[ch]: moved to ext
146
147 2004-12-03  Paul Brossier <piem@altern.org>
148         * src/{mathutils,pitchyin}.h: got rid of some shadowed declarations
149         * plugins/puredata: first puredata plugin attempt added
150
151 2004-11-30  Paul Brossier <piem@altern.org>
152         * configure.ac: added -lmx on macosx
153         * python/aubiocut: seeks for local minima before peak
154                            added zero crossing search
155         * src/pitchyinc.c: adds draft for all-in-one faster function
156         * examples/*.c: added ladcca client (needs work)
157         * examples/aubioonset.c: cleaned up verbose stdout 
158         * doc/aubio.css: updated
159
160 2004-10-28  Paul Brossier <piem@altern.org>
161         * src/Makefile.am: added config.h installation
162         * VERSION: 0.1.7.1
163
164 2004-10-26  Paul Brossier <piem@altern.org>:
165         * src/pitchdetection.*: moved to src/pitchmcomb.*, now includes a
166         draft driver for transparent use of mcomb or yin 
167         * src/pitchmcomb.*: added from old src/pitchdetection.*
168         * VERSION: 0.1.7
169
170 2004-10-20  Paul Brossier <piem@altern.org>:
171         * configure.ac: made fftw3f, alsa and jack optional
172         * src/fft.{c,h}: now uses FFTW3F_SUPPORT
173         * src/timer.c: #if 0 on win32 version
174
175 2004-10-18  Paul Brossier <piem@altern.org>:
176         * src/{fft,cvec,pvoc}.c: fixed fft size (N/2+1)
177         * src/{onsetdetection,tss}.c: fixed sizes as well
178         * src/pvoc.c: fixed resynthesis scaling factor (still missing
179         windowing), windowing added in pvoc_rdo 
180         * src/fft.h: removed FFTW typedef
181         * configure.ac: removed AC_ISC_POSIX to compile on mingw32
182         * src/fft.c: removed useless fftw3.h include
183         * src/pitchmcomb.c: removed call to vec_adapt_thres (writes out of
184         bounds)
185
186 2004-10-17  Paul Brossier <piem@altern.org>
187         * src/sample.c: removed static _malloc, set all 0. (fixes nan bugs)
188         * examples/*.c: removed useless pvoc inits
189         * src/pitchyin.c: based on de Cheveigne paper
190
191 2004-09-17  Paul Brossier <piem@altern.org>
192         * configure.ac,src/Makefile.am: cleaned up autotools process
193         * examples/aubio*.c: removed some useless code.
194         * src/sample.c: removed crazy call to memset
195
196 2004-09-02  Paul Brossier <piem@altern.org>
197         * src/sndfileio.c: removed abusive call to AUBIO_ARRAY,
198         defined MAX_SIZE instead.
199         * src/onsetdetection.c: rewritten free_function.
200         * src/phasevoc.c: in aubio_pvoc_rdo, one way writing only
201         * swig/, python/aubio: added swig wrapper, played a bit with 
202         python interface.
203         * src/aubio.h: now includes midi_driver.h
204
205 2004-06-25  Paul Brossier <piem@altern.org>
206         * src/peakpick.h: 
207            renamed pickparams_t to aubio_pickpeak_t 
208            disabled samer_pp (broken)
209            added del_aubio_peakpick
210            added aubio_peakpick_pimrt_wt (thanks mramirez) 
211         * python/aubio/onsetcompare.py: now works on huge list 
212            thanks goes to Nicolas Wack
213         * examples/aubionotes.c: now outputs NOTEONs 
214         * configure.ac: quick hack to disable jack and alsa
215         * examples/*usingjack*: more hacking to disable jack
216         * README: some updates
217
218 2004-06-23  Paul Brossier <piem@altern.org>
219         * src/*.h: added C++ ifdefs in header files
220         * src/fft.h: removed complex.h include in header
221         * src/hist.c: fixed out of array indexes 
222                 thanks Miguel Ramirez!
223         * src/Makefile.am: added install headers
224         * doc/Makefile.am: removed dist-hook to update-docs
225         * sounds/Makefile.am: added install hooks
226         * aubio.pc.in: added aubio.pc generation for pkg-config
227         * python: added some evaluation functions 
228         * src/aubio_priv.h: moved AUBIO_DBG to stderr
229         * examples/utils.h: now outputs on stdout
230         * examples/midi*.c: fixed compilation with gcc-2.95
231         * VERSION: 0.1.4
232
233 2004-04-27  Paul Brossier <piem@altern.org>
234         * pitchdetection.c: fixed, still not great
235         * Makefile.am: fixed missing headers (thank you Charbel) 
236         * aubioonset,aubionotes: renamed for install (were *demo files)
237         * First working release: 0.1.3
238
239 2004-01-31  Paul Brossier <piem@altern.org>
240         * pitchdetection.c: working, still a bit too picky
241         * filter.c: sizeable biquad, fixed via pitchtest.c
242         * types.h: added file, all generic system wide types.
243         * tss.c: added some speed improvements
244
245 2004-01-20  Paul Brossier <piem@altern.org>
246         * peakpick.c: working real time onset detection
247         * biquad.c: needs fixing
248
249 2004-01-10  Paul Brossier <piem@altern.org>
250         * long time i didn't touch this file
251         * added various objects
252         * working onsetdetectors
253         * various examples
254         * splitted in a dynamic library
255         * functions renamed (new_. del_. aubio_._do)
256         * VERSION: 0.1.0_alpha
257
258 2003-11-04  Paul Brossier <piem@altern.org>
259         * aubio.h: degrouping in modules
260         * VERSION: 0.0.6_alpha
261
262 2003-11-03  Paul Brossier <piem@altern.org>
263         * phasevoc.c: fixed memory acces
264         * jackio.c: moving to ringbuffer type implementation
265         * VERSION: 0.0.4_alpha
266
267 2003-11-03  Paul Brossier <piem@altern.org>
268         * jackio.c: added jack support
269         * aubioenc.c: fixed memory freeing bugs
270         * VERSION: 0.0.3_alpha
271
272 2003-10-29  Paul Brossier <piem@altern.org>
273         * aubio.h: Grouping all headers
274         * makefile.am: Running first make dist
275         * VERSION: 0.0.2alpha
276  
277 2003-10-18  Paul Brossier <piem@altern.org>
278         * aubioenc.c: Working phase vocoder
279         * VERSION: 0.0.1alpha