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