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