2013-12-08 Paul Brossier * Overdue: After more than five years of development behind the curtain, time has come to release a new version of aubio. * General: The library has been completely revised since 0.3.2. The API has seen a major clean up, and has been thoroughly tested. The following list of changes is not exhaustive. * Memory management: allocation and freeing of memory has been optimized in many ways. Several memory leaks and out of bound access have been fixed. * Optimization: the FFT, central to most algorithms, can now be computed using different optimized algorithms, depending on what is available on your platform (FFTW, Ooura, or vDSP). Other simple optimization tricks are included. Most can be deactivated by configuring the build accordingly. * python/: The python interface has been completely rewritten to use numpy C interface, making the aubio python module order of magnitudes faster than the previous version. Several demos and tests are included. * src/: source and header files are now organized in sub-directories. * src/io/source.h: new source readers can now use any or all of libav, CoreAudio, and libsndfile. This means that aubio can now easily read most uncompressed and compressed formats. Compiled with libav, aubio can also read audio from video files, and over the network. * src/io/sink.h: a new sink object lets you write wav files with any number of channels, at any samplerate, using libsndfile or CoreAudio. * src/onset, src/tempo/, src/pitch: the different methods for onset, tempo, and pitch extraction have seen many bug-fixes and optimizations. * src/spectral/specdesc.h: new onset distances and statistical measures have been added. * src/spectral/filterbank.h: new filter bank to compute the energy in any custom-defined frequency bands. * src/spectral/mfcc.h, examples/aubiomfcc.c: a standard implementation of the Mel-Frequency Cepstrum Coefficients algorithm has been added. * src/temporal/{a,c}_weighting.h: standard implementation of the C-weighting and A-weighting pre-processing filters are now provided for most commons sampling rates. * src/synth/wavetable.h, src/synth/sampler.h: provide basic ways to generate some sounds. * src/fvec.h: fvec_t, the vector object central to most aubio algorithms, is now single channel. This simplifies the code of each algorithm greatly. * src/lvec.h: lvec_t provides a double precision vector, required for some operations to avoid floating point overflow * src/fmat.h: fmat_t provides a single precision matrix, useful for multi-channel operations and to some algorithms such as the spectral filter bank. * examples/: several new options, including new programs, have been included. Refer to the documentation for details. * tests/: several tests and examples programs have been added. This should be a good place to look at to understand how to use aubio. * doc/web.cfg: a simplified Doxygen configuration produces a simpler html documentation. * doc/*.txt: the manpages have been rewritten for txt2man. * Build system: the build system has been switched from autotools/automake to waf. Type './waf' or see README.md for instructions on how to use waf. 2006-11-10 Paul Brossier * configure.ac: check c compiler for -Wextra option * examples/*: add lash support to aubioonset, aubiotrack, and aubionotes * */Makefile.am: improve compilation on Mac OS X, mingw and cygwin * src/{onset,tempo}.[ch]: add simple c interfaces to onset and tempo tasks * src/beattracking.c: allow the use of two beat trackers simultaneously * examples/tests: add test programs for most c functions * src/*.c: add most missing free calls * src/*.c: fix some out of array writes * src/,ext/: more gcc warning fixes 2006-27-06 Paul Brossier * plugins/puredata/Makefile.am: move pd help to pattern-help.pd - thanks goes to Frank Barknecht * ext/sndfileio.c src/aubio_priv.h: fixes memset in aubio_priv.h, remove useless sfinfo.format=0 - thanks karsten wiese * ext/midi/midi_alsa_seq.c: do not call pthread_ in aubio_midi_direct_output - thanks karsten wiese * python/aubio/task/beat.py: task beat() output seconds * python/aubio/task/beat.py: ugly hack to plot beat track anyway * examples/aubionotes.c: fix signed/unsigned mismatches in examples * src/beattracking.c: fix signed/unsigned mismatches in beattracking * src/pitchfcomb.c: fix signed/unsigned mismatches in pitchfcomb * src/pitchschmitt.c: fix signed/unsigned mismatches in pitchscmitt * configure.ac: use -Wextra but unused parameters, fix macos CFLAGS * plugins/puredata/Makefile.am: simplify puredata Makefile.am * python/aubio/Makefile.am: avoid overwriting CFLAGS * examples/Makefile.am: use top_{build,src}dir instead of ../ * configure.ac: make configure.ac more readable * python/aubio/task/cut.py: use os.path to derive default output filenames * VERSION: 0.3.1 2006-18-05 Paul Brossier * src/pitchyinfft.{c,h}: new pitch detection method * src/beattracking.c: algorithm improved * plugins/puredata/: new puredata external * python/tasks: enhancements to the onset detection algorithms * python/aubiocut: improved, can now slice at beats and silences * python/aubiopitch: new python program to extract pitch tracks * python/: plotting features for aubiocut and aubiopitch * python/: interface refactored * doc/: updated documentation * VERSION: 0.3.0 2006-18-05 Paul Brossier * src/beattracking.c: added beattracking.c * various bug fixes * VERSION: 0.2.0 2005-29-03 Paul Brossier * python/aubio/gnuplot.py: clean up and add plotsound * python/aubiocompare-onset: updated * examples/aubioonset.c: fix text output when nframes<4 * ext/midi/midi_file.c: by default, int is unsigned on powerpc * python/aubiocut, python/aubio/aubioclass.py: updated * ext/midi/midi_alsa_seq.c: activated threading * configure.ac,Makefile.am: added rules to check presence of swig, python, puredata and docbook-to-man. 2005-17-03 Paul Brossier * examples/utils.{c,h}: corrected usedoubled and -O interactions * examples/aubioonset.c: added frames>=4 check (thanks Hamish Allan) 2004-12-11 Paul Brossier * swig/Makefile.am: instructions moved to python/aubio and cleaned * python/aubiocut: corrected slicing on multichannel files * VERSION: bumped to 0.1.8 2004-12-06 Paul Brossier * examples/{midi*,testforclam}.c: removed * src/{sndfile,midi*,jackio}.[ch]: moved to ext 2004-12-03 Paul Brossier * src/{mathutils,pitchyin}.h: got rid of some shadowed declarations * plugins/puredata: first puredata plugin attempt added 2004-11-30 Paul Brossier * configure.ac: added -lmx on macosx * python/aubiocut: seeks for local minima before peak added zero crossing search * src/pitchyinc.c: adds draft for all-in-one faster function * examples/*.c: added ladcca client (needs work) * examples/aubioonset.c: cleaned up verbose stdout * doc/aubio.css: updated 2004-10-28 Paul Brossier * src/Makefile.am: added config.h installation * VERSION: 0.1.7.1 2004-10-26 Paul Brossier : * src/pitchdetection.*: moved to src/pitchmcomb.*, now includes a draft driver for transparent use of mcomb or yin * src/pitchmcomb.*: added from old src/pitchdetection.* * VERSION: 0.1.7 2004-10-20 Paul Brossier : * configure.ac: made fftw3f, alsa and jack optional * src/fft.{c,h}: now uses FFTW3F_SUPPORT * src/timer.c: #if 0 on win32 version 2004-10-18 Paul Brossier : * src/{fft,cvec,pvoc}.c: fixed fft size (N/2+1) * src/{onsetdetection,tss}.c: fixed sizes as well * src/pvoc.c: fixed resynthesis scaling factor (still missing windowing), windowing added in pvoc_rdo * src/fft.h: removed FFTW typedef * configure.ac: removed AC_ISC_POSIX to compile on mingw32 * src/fft.c: removed useless fftw3.h include * src/pitchmcomb.c: removed call to vec_adapt_thres (writes out of bounds) 2004-10-17 Paul Brossier * src/sample.c: removed static _malloc, set all 0. (fixes nan bugs) * examples/*.c: removed useless pvoc inits * src/pitchyin.c: based on de Cheveigne paper 2004-09-17 Paul Brossier * configure.ac,src/Makefile.am: cleaned up autotools process * examples/aubio*.c: removed some useless code. * src/sample.c: removed crazy call to memset 2004-09-02 Paul Brossier * src/sndfileio.c: removed abusive call to AUBIO_ARRAY, defined MAX_SIZE instead. * src/onsetdetection.c: rewritten free_function. * src/phasevoc.c: in aubio_pvoc_rdo, one way writing only * swig/, python/aubio: added swig wrapper, played a bit with python interface. * src/aubio.h: now includes midi_driver.h 2004-06-25 Paul Brossier * src/peakpick.h: renamed pickparams_t to aubio_pickpeak_t disabled samer_pp (broken) added del_aubio_peakpick added aubio_peakpick_pimrt_wt (thanks mramirez) * python/aubio/onsetcompare.py: now works on huge list thanks goes to Nicolas Wack * examples/aubionotes.c: now outputs NOTEONs * configure.ac: quick hack to disable jack and alsa * examples/*usingjack*: more hacking to disable jack * README: some updates 2004-06-23 Paul Brossier * src/*.h: added C++ ifdefs in header files * src/fft.h: removed complex.h include in header * src/hist.c: fixed out of array indexes thanks Miguel Ramirez! * src/Makefile.am: added install headers * doc/Makefile.am: removed dist-hook to update-docs * sounds/Makefile.am: added install hooks * aubio.pc.in: added aubio.pc generation for pkg-config * python: added some evaluation functions * src/aubio_priv.h: moved AUBIO_DBG to stderr * examples/utils.h: now outputs on stdout * examples/midi*.c: fixed compilation with gcc-2.95 * VERSION: 0.1.4 2004-04-27 Paul Brossier * pitchdetection.c: fixed, still not great * Makefile.am: fixed missing headers (thank you Charbel) * aubioonset,aubionotes: renamed for install (were *demo files) * First working release: 0.1.3 2004-01-31 Paul Brossier * pitchdetection.c: working, still a bit too picky * filter.c: sizeable biquad, fixed via pitchtest.c * types.h: added file, all generic system wide types. * tss.c: added some speed improvements 2004-01-20 Paul Brossier * peakpick.c: working real time onset detection * biquad.c: needs fixing 2004-01-10 Paul Brossier * long time i didn't touch this file * added various objects * working onsetdetectors * various examples * splitted in a dynamic library * functions renamed (new_. del_. aubio_._do) * VERSION: 0.1.0_alpha 2003-11-04 Paul Brossier * aubio.h: degrouping in modules * VERSION: 0.0.6_alpha 2003-11-03 Paul Brossier * phasevoc.c: fixed memory acces * jackio.c: moving to ringbuffer type implementation * VERSION: 0.0.4_alpha 2003-11-03 Paul Brossier * jackio.c: added jack support * aubioenc.c: fixed memory freeing bugs * VERSION: 0.0.3_alpha 2003-10-29 Paul Brossier * aubio.h: Grouping all headers * makefile.am: Running first make dist * VERSION: 0.0.2alpha 2003-10-18 Paul Brossier * aubioenc.c: Working phase vocoder * VERSION: 0.0.1alpha