source: ChangeLog @ ea051da

Last change on this file since ea051da was cd2ddc0, checked in by Paul Brossier <piem@piem.org>, 6 years ago

[ChangeLog?] add 0.4.9 entry

  • Property mode set to 100644
File size: 53.5 KB
Line 
12018-12-19 Paul Brossier <piem@aubio.org>
2
3        [ Overview ]
4
5        * VERSION: bump to 0.4.9
6        * library: improve stability, fixing potential crashes and memory leaks on
7        invalid arguments; improve library messages and reporting of system errors
8        * tests/: major clean-up, check return codes, increase code coverage
9        * python/tests/: switch to pytest (closes gh-163), check emitted warnings
10        * python/: add pages to manual with brief descriptions of classes
11
12        [ Fixes ]
13
14        * security: improve arguments validation in new_aubio_filterbank (prevent
15        possible null-pointer dereference on invalid n_filters, CVE-2018-19801),
16        new_aubio-tempo (prevent possible buffer overflow, CVE-2018-19800), and
17        new_aubio_onset (prevent null-pointer dereference, CVE-2018-19802). Thanks
18        to Guoxiang Niu (@niugx), from the EaglEye Team for reporting these issues.
19        * tempo: fix delay_ms methods
20        * filterbank: fix aubio_filterbank_get_power (thanks to @romanbsd who
21        also noticed this issue)
22        * dct: creation fail on negative sizes or invalid accelerate radix,
23        fix typo in error and warning messages, prevent possible memory leak
24        * pitch: prevent null pointer dereference in yinfast, comment out unused
25        functions in mcomb and yin, prevent possible leak in specacf
26        * mfcc: always use dct module, strengthen input validation, change
27        get_{scale,power} to return smpl_t
28        * specdesc: improve error message
29        * notes: prevent null pointer dereference
30        * hist: add validation for size argument, prevent possible leak
31        * awhitening: use shortest length available (closes gh-216)
32        * io: add macros to display system errors, add helpers to validate input
33        arguments of source and sink methods, always clean-up after failure
34        * source: validate input sizes to prevent invalid reads
35        * apple_audio: use native format conversions in source and sink, prevent
36        possible apple_audio crash on empty string, get_duration returns 0 on failure
37        * ffmpeg/avcodec: prevent deprecation warnings, read after close, and skipped
38        samples warnings, improve warning messages, only show a warning when
39        swr_convert failed, prevent possible memory leak when closing swr context
40        * wavwrite: copy to all channels if needed, check fseek and fwrite return
41        values, call fflush in open to return failure on full disk-system
42        * source_sndfile: fix reading sizes when resampling, set error message when
43        reading after close
44        * aubio_priv.h: include blas first (see gh-225), add STRERROR macros
45
46        [ Python ]
47
48        * documentation: add pages to manual, add minimal docstrings for fft,
49        digital_filter, and generated objects, improve specdesc documentation
50        * filterbank: add get_norm/power documentation
51        * source: take a copy of the last frame before resizing it, raise an
52        exception when read failed, fix compilation warning
53        * fixes: remove unneeded check convert with PyFloat_FromDouble or
54        PyFloat_FromDouble, check if sink, digital_filter, were created before
55        deleting
56
57        [ Tests ]
58
59        * python/tests/: switch to pytest (slightly slower than nose2 but better at
60        capturing warnings and parametrization), improve coding style and coverage.
61        Tests should now be run with `pytest`.
62        * tests/: Each test program in C must now return 0, otherwise the test will
63        fail. Examples have been modified to run themselves on a test audio file,
64        but can still be run with arguments. Tests for `source` and `sink` have been
65        factorised, and some code cleaning. A python script is used to create a
66        test sound file. Tested on linux, macos, and windows, improvements to
67        test-mfcc (closes gh-219).
68
69        [ Build system ]
70
71        * waf: upgrade to 2.0.14, check the return code of each test program,
72        update rules to build manual and api documentation into build/, check
73        for errno.h
74        * osx: use -Os in scripts/build_apple_frameworks
75        * Makefile: improve coverage reports
76        * appveyor, travis, circleci: switch to pytest, set one travis config to use
77        sndfile only
78        * travis: add py3.6, drop py3.4, use py3.5 to test debug mode
79        * azure: add basic configuration
80
812018-11-21 Paul Brossier <piem@aubio.org>
82
83        [ Overview ]
84
85        * VERSION: bump to 0.4.8
86        * notes: new option release_drop (gh-203)
87        * spectral: new parameters added to filterbank and mfcc (gh-206)
88        * python: start documenting module (gh-73, debian #480018), improve build for
89        win-amd64 (gh-154, gh-199, gh-208)
90        * fixes: prevent crash when using fft sizes unsupported by vDSP (gh-207),
91        prevent saturation when down-mixing a multi-channel source (avcodec/ffmpeg)
92
93        [ Fixes ]
94
95        * avcodec: prevent saturation when down-mixing a multi-channel source, emit
96        a warning if compiling against avutil < 53 (gh-137), wrap long lines
97        * examples/: avoid hiding global and unreachable code
98        * fft: limit to r*2*n sizes, with r in [1, 3, 5, 15] (vDSP only) (gh-207)
99        * fft: fix reconstruction for odd sizes (fftw only)
100        * pvoc: add missing implementations for aubio_pvoc_get_hop/win
101        * mathutils: increase ln(2) precision of in freqtomidi/miditofreq
102        * wavetable: stop sets playing to 0, add dummy implementation for _load
103
104        [ New features ]
105
106        * src/musicutils.h: new aubio_meltohz, aubio_hztomel, with _htk versions
107        * src/spectral/filterbank.h: new set_mel_coeffs, set_mel_coeffs_htk,
108        set_power, and set_norm methods, improved set_triangle_bands
109        * src/spectral/mfcc.h: new set_scale, set_power, set_norm, set_mel_coeffs,
110        set_mel_coeffs_htk, set_mel_coeffs_slaney
111        * src/mathutils.h: new fvec_mul
112        * src/notes: new option release_drop to prevent missing note-offs (gh-203)
113
114        [ Python module ]
115
116        * fix: rounding to nearest integer in midi2note and freq2note
117        * general: supports code generation of setters with none or multiple
118        parameters
119        * documentation: add docstrings do fvec, cvec, source, sink, pvoc, frequency
120        conversion and level detection routines (gh-73, debian #480018)
121        * slicing: improve and document slice_source_at_stamps
122        * module: new note2freq function, recover error log when raising exceptions
123        on failed set_ methods, prevent cyclic import, coding style improvements
124        * demos: improve coding style, fix bpm_extract arguments
125        * MANIFEST.in: exclude *.pyc, improve patterns
126
127        [ Documentation ]
128
129        * doc/: use sphinx autodoc to load docstrings from aubio module, reorganize
130        python module documentation, add a note about double precision, use https
131        when possible
132        * src/spectral/: update Auditory Toolbox url, update copyright year
133
134        [ Tools ]
135
136        * aubionotes: add --release-drop option
137        * aubio: add --release-drop and --silence options to `aubio notes`,
138        workaround for -V to really show version (py2)
139        * aubiocut: add option --create-first to always create first slice
140
141        [ Tests ]
142
143        * tests/, python/tests: add tests for new methods, check source channel
144        down-mix, improve coverage
145
146        [ Build system ]
147
148        * Makefile: disable docs when measuring coverage, add branch coverage
149        option, add coverage_zero_counters target, improve html report
150        * waf: update to 2.0.12, improve wscript style, prevent shipping some
151        generated files
152        * python: always show compiler warnings when pre-processing headers,
153        workaround to fix code generation for win-amd64 (gh-154, gh-199, gh-208).
154        * continuous integration: add azure pipelines, update and improve
155        configurations for appveyor, circleci, and travis.
156
1572018-09-22 Paul Brossier <piem@aubio.org>
158
159        [ Overview ]
160
161        * VERSION: bump to 0.4.7
162        * src/spectral/dct.h: add dct type II object with optimised versions
163        * src/io/, src/notes/, src/pitch: prevent crashes on corrupted files
164        * examples/: fix jack midi output, improve messages when jack disabled
165        * python/: add dct support, minor bug fixes tests and demos
166        * wscript: improve support for BLAS/ATLAS
167
168        [ Library fixes ]
169
170        * src/pitch/pitchyinfft.c: fix out of bound read when samplerate > 50kHz
171        thanks to @fCorleone (closes #189, CVE-2018-14523, debian #904906)
172        * src/notes/notes.c: bail out if pitch creation failed (see #188)
173        * src/io/source_wavread.c:
174         - also exit if samplerate is negative (closes #188, CVE-2018-14522,
175         debian #904907)
176         - add some input validation (closes #148 and #158, CVE-2017-17054,
177         debian #883355)
178        * src/io/source_avcodec.c:
179         - give up if resampling context failed opening (see #137, closes #187,
180         CVE-2018-14521, debian #904908)
181         - give up reading file if number of channel changes during stream (closes
182         #137, CVE-2017-17554, debian #884237)
183         - make sure libavutil > 52 before checking avFrame->channels (see #137)
184         - fix build with ffmpeg 4.0, thanks to @jcowgill (closes #168, #173)
185         - avoid deprecated call for ffmpeg >= 4.0
186        * src/onset/onset.c: add dummy default parameters for wphase (closes #150)
187
188        [ Tools ]
189
190        * examples/parse_args.h: hide jack options if not available, improve error
191        message (closes #182)
192        * examples/utils.h: process_block returns void
193        * examples/utils.c: fix examples failing to send more than one JACK midi
194        event per frame, thanks to @cyclopsian (closes #201)
195
196        [ New features ]
197
198        * src/spectral/dct.h: add dct type II object with implementation factory
199        * src/spectral/dct_plain.c: add plain dct implementation
200        * src/spectral/dct_ooura.c: add ooura implementation
201        * src/spectral/dct_fftw.c: add fftw implementation
202        * src/spectral/dct_ipp.c: add ipp version
203        * src/spectral/dct_accelerate.c: add vdsp/accelerate dct
204        * tests/src/spectral/test-dct.c: check reconstruction works
205        * src/spectral/mfcc.c: use new dct to compute mfcc
206
207        [ Library internals ]
208
209        * src/aubio_priv.h: avoid hard-coded undefs, split BLAS and ATLAS support,
210        add vdsp scalar add and multiply
211
212        [ Build system ]
213
214        * wscript:
215         - add options to disable examples and tests
216         - detect includes for openblas/libblas/atlas
217        * scripts/get_waf.sh: bump to 2.0.11, verify signature if gpg available
218        * python/lib/gen_external.py: pass '-x c' to emcc only
219
220        [ Python ]
221
222        * python/lib/gen_code.py: add support for rdo methods
223        * python/tests/test_dct.py: add tests for new dct
224        * python/demos/demo_pitch_sinusoid.py: use // to yield an integer, fixing
225        demo on py3, thanks to @ancorcruz (closes #176)
226        * python/ext/py-musicutils.*: add shift(fvec) and ishift(fvec)
227        * python/tests/test_fvec_shift.py: add tests for shift() and ishift()
228        * python/lib/aubio/cmd.py: fix typo in comment
229
230        [ Documentation ]
231
232        * README.md, doc/statuslinks.rst: use latest for commits-since
233        * examples/parse_args.h: add yinfast to pitch algorithms
234        * doc/requirements.rst: add some blas documentation
235        * doc/requirements.rst: split media/optimisation libraries
236        * doc/develop.rst: fixed spelling error, thanks to Jon Williams (closes #161)
237        * doc/aubio{pitch,notes}.txt: add yinfast to list of pitch methods
238
239        [ Continuous integration ]
240
241        * .travis.yml: remove xcode8.2 builds, group osx, add alias pip=pip2
242        * .appveyor.yml: upgrade pip first, always use python -m pip
243
2442017-10-02 Paul Brossier <piem@aubio.org>
245
246        [ Overview ]
247
248        * VERSION: bump to 0.4.6
249        * src/spectral/fft.c, src/*.c: add support for Intel IPP (many thanks to
250        Eduard Mueller)
251        * wscript: add support for emscripten (thanks to Martin Hermant)
252        * src/pitch/pitchyinfast.h: new fast method to compute YIN algorithm
253        * src/pitch/pitchyin*.c: improve confidence measure, making sure its value
254        corresponds to the selected period (thanks to Eduard Mueller)
255        * python/lib/aubio/cmd.py: add `quiet`, `cut`, and `help` subcommands
256
257        [ Library ]
258
259        * src/aubio_priv.h: add missing aubio_vDSP_vclr (Eduard Mueller)
260        * src/io/source_avcodec.c: improve error message, prevent un-opened bracket,
261        no declaration after statements for older compilers, avoid unused variable
262        * src/mathutils.c: prevent segfault with Accelerate.framework (closes #58,
263        closes #102)
264        * src/spectral/phasevoc.h: add aubio_pvoc_set_window to change the windowing
265        function
266        * src/mathutils.c: add window type `ones` (no windowing)
267
268        [ Python ]
269
270        * python/demos/demo_tapthebeat.py: add a real-time example to play beats
271        using pyaudio
272        * python/lib/gen_external.py: improve parsing and syntax, use results in
273        emscripten build (Martin Hermant)
274        * python/lib/aubio/cmd.py: add option `-u` to `aubio pitch`, improve error
275        messages, add `quiet` subcommand (closes #124), improve syntax, add some
276        documentation, add `cut` and `help` subcommand, add silence and time format
277        options
278        * python/lib/aubio/cut.py: upgrade to argparse, set samplerate as needed
279        * python/demos/demo_yin_compare.py: add comparison of yin implementations
280        * python/demos/demo_wav2midi.py: add an example to create a midi from a
281        sound file using mido (closes: #134)
282        * python/demos/demo_bpm_extract.py: use argparse, use beats_to_bpm function
283        * python/ext/py-cvec.c: fix support for pypy by changing setters to return a
284        negative value on error (closes #17)
285
286        [ Documentation ]
287
288        * src/tempo/beattracking.h: fix typo (thanks to Hannes Fritz)
289        * doc/requirements.rst: fix broken link (thanks to @ssj71, closes #99)
290        * doc/aubiomfcc.txt: fix typo in 'coefficients'
291
292        [ Tests ]
293
294        * python/tests/tests_aubio_{cmd,cut}.py: add basic tests
295        * python/tests/test_filterbank*.py: ignore UserWarnings, clean-up,
296        improve get_coeff tests
297
298        [ Build system ]
299
300        * wscript: add support for emscripten, see scripts/build_emscripten
301        * scripts/get_waf.sh: update waf to 2.0.1, build waf from source tarball
302        * scripts/build_emscripten: update to build aubio.js
303        * Makefile: add coverage and coverage_report targets, run tests once
304
305        [ Continuous integration ]
306
307        * .travis.yml: add coverage report on osx
308        * .appveyor.yml: use msvc 14.0 (VS 2015) and scripts/get_waf.sh
309        * .coveragerc: add minimal python coverage configuration
310
3112017-04-10 Paul Brossier <piem@aubio.org>
312
313        [Overview]
314
315        * VERSION: bump to 0.4.5
316        * src/io/source_avcodec.c: add support for libswresample
317        * aubio: new python command line tool to extract information
318        * src/onset/onset.c: add spectral whitening and compression, improve default
319        parameters
320        * this_version.py: use centralized script to get current version, adding git
321        sha when building from git repo (thanks to MartinHN)
322
323        [Interface]
324
325        * src/spectral/awhithening.h: add adaptive whitening
326        * src/{cvec,mathutils,musicutils}.h: add cvec_logmag, fvec_logmag, and fvec_push
327        * src/onset/onset.h: add aubio_onset_set_default_parameters to load optimal
328        parameters of each novelty function, _{set,get}_compression and
329        _{set,get}_awhitening to turn on/off compression and adaptive whitening
330        * src/spectral/specdesc.h: add weighted phase
331
332        [Library]
333
334        * src/onset/onset.c: improve default onset parameters (thanks to @superbock
335        for access to his evaluation database), see commit dccfad2 for more details
336        * src/pitch/pitch.c: avoid segfault when using invalid parameters
337        * src/temporal/biquad.c: fix biquad parameters initialization (thanks to
338        @jurlhardt)
339
340        [Tools]
341
342        * examples/aubio{onset,track}.c: add options --miditap-note and
343        --miditap-velo to set which midi note is triggered at onset/beat (thanks to
344        @tseaver)
345        * examples/aubioonset.c: show actual parameters in verbose mode
346        * examples/utils.c: improve memory usage to emit midi notes
347
348        [Python]
349
350        * python/ext/py-source.c: add with (PEP 343) and iter (PEP 234) interface
351        * python/ext/py-sink.c: add with interface (PEP 343)
352        * python/lib/aubio/cmd.py: new `aubio` command line tool
353        * python/lib/aubio/cut.py: moved from python/scripts/aubiocut
354
355        [Documentation]
356
357        * doc/*.rst: reorganize and improve sphinx manual
358        * doc/*.txt: update manpages, add simple manpage for aubio command line
359        * doc/full.cfg: derive from doc/web.cfg
360        * README.md: simplify and add contribute information
361
362        [Build system]
363
364        * wscript: prefer libswresample over libavsamplerate when available, use
365        current version in manpages, doxygen, and sphinx, update to newest waf
366        * setup.py: use entry_points console_scripts to generate scripts, use
367        centralized version from this_version.py, clean up
368        * python/lib/moresetuptools.py: detect if libswresample is available
369
3702017-01-08 Paul Brossier <piem@aubio.org>
371
372        [ Overview ]
373
374        * VERSION: bump to 0.4.4
375        * src/utils/log.h: new function to redirect log, error, and warnings
376        * python/: AUBIO_ERR raises python exception, AUBIO_WRN to emit py warning
377        * doc/: add some documentation, fix errors in manpages
378        * wscript: new rules to build 'manpages', 'doxygen', and 'sphinx', new
379        --build-type=<release|debug> option (thanks to Eduard Mueller)
380        * src/notes/notes.h: add minioi and silence methods
381        * examples/: add --minioi (minimum inter-onset interval) option
382        * src/pitch/pitchyin.c: improve msvc compiler optimisations (thanks to
383        Eduard Mueller)
384        * python/, src/: improve error messages, fix minor memory leaks
385        * src/io/source_avcodec.c: improve compatibility with latest ffmpeg and with
386        older libav/ffmpeg versions
387        * python/demos/: new demos to capture microphone in real time
388
389        [ Interface]
390
391        * src/aubio.h: include utils/log.h
392        * src/utils/log.h: add new aubio_log_set_function to redirect log messages
393        * src/notes/notes.h: add aubio_notes_{get,set}_minioi_ms, add
394        _{get,set}_silence methods
395
396        [ Library ]
397
398        * src/aubio_priv.h: add AUBIO_INF to print to stdout with header, use new
399        logging function, add ATAN alias, add stdarg.h, move #include "config.h"
400        * src/{fmat,fvec}.c: avoid integer division
401        * src/pitch/pitchyin.c: [msvc] help compiler to optimize aubio_pitchyin_do
402        by giving it addresses for all arrays which are referenced in inner loops,
403        thanks to Eduard Mueller.
404        * src/pitch/pitch.c: declare internal functions as static, fail on wrong
405        method, warn on wrong unit, improve error messages, fix error string
406        * src/spectral/specdesc.c: return NULL if wrong mode asked, remove trailing
407        spaces
408        * src/onset/onset.c: return null and clean-up if new_aubio_specdesc failed,
409        fix error message
410        * src/notes/notes.c: use midi note to store pitch candidate, round to
411        nearest note, add a variable to define precision, fix out-of-bound write,
412        fix unset silence_threshold, fix error message
413        * src/spectral/ooura_fft8g.c: add cast to avoid conversion warnings, prefix
414        public function with aubio_ooura_ to avoid with other apps using ooura (e.g.
415        puredata), make internal functions static,
416        * src/spectral/fft.c: add message about fftw3 being able to do non-power of
417        two sizes, make calls to fftw_destroy_plan thread-safe, use prefixed
418        aubio_ooura_rdft
419        * src/spectral/phasevoc.c: fix error string
420        * src/temporal/resampler.c: throw an error when using libsamplerate with doubles
421        * src/io/ioutils.h: add functions to check samplerate and channels, use in sink_*.c
422        * src/io/source.c: add error message when aubio was compiled with no source,
423        only show error message from last child source_
424        * src/io/source_avcodec.c: call avformat_free_context after
425        avformat_close_input, keep a reference to packet to remove it when closing
426        file, avoid deprecation warnings with ffmpeg 3.2, add backward compatibility
427        for libavcodec55, fix for old libavcodec54, use AV_SAMPLE_FMT_DBL when
428        compiling with HAVE_AUBIO_DOUBLE, fix missing samples in eof block, avoid
429        function calls before declarations, improve error messages, replace with new
430        context before closing old one, make sure s->path is set to null
431        * src/io/{source_wavread,sink_wavwrite}.c: declare internal functions as static
432        * src/io/source_wavread.c: fix bytes_read for JUNK headers, improve error
433        messages, initialize buffer, skip chunks until data is found, or abort, skip
434        junk chunk
435        * src/io/source_sndfile.c: add support for multi-channel resampling, set
436        handle to null after sucessful close, add missing floor in ratio comparison,
437        improve formatting
438        * src/io/sink.c: only show error message from last child sink_
439        * src/io/sink_apple_audio.c: avoid crash on empty file name
440        * src/io/sink_sndfile.c: improve error message
441        * src/io/sink_{sndfile,wavwrite}.c: use AUBIO_MAX_CHANNELS, fix error message
442
443        [ Documentation ]
444
445        * README.md: update copyright dates, use https
446        * src/aubio.h: add some links to examples, use https
447        * src/pitch/pitch.h: add aubio_pitch_get_tolerance, add basic description of
448        unit modes
449        * src/notes/notes.h: add doxygen header
450        * src/spectral/fft.h: strip example path
451        * doc/*.rst: improve sphinx documentation
452        * doc/android.rst: add reference to it scripts/build_android
453        * doc/debian_packages.rst: added page on debian packages
454        * doc/python_module.rst: add demo_source_simple.py, add note on pip, add
455        `print(aubio.version)`
456        * doc/cli.rst: include command line manpages
457        * doc/cli_features.rst: add matrix of command line features
458        * doc/requirements.rst: add a note about --notests (closes #77), document
459        --msvc options, improve description of options
460        * doc/download.rst: added page on download
461        * doc/installing.rst: update
462        * doc/xcode_frameworks.rst: added page on xcode frameworks
463        * doc/**: use https://aubio.org
464        * doc/conf.py: use pyramid theme, update copyright, remove hardcoded path
465        * doc/web.cfg: exclude ioutils from doc
466        * doc/aubionotes.txt: document -M option (see #18),
467        * doc/aubioonset.txt: add documentation for -M, --minioi, improve threshold
468        description (thanks to Peter Parker), fix typo (onset, not pitch)
469        * doc/aubio*.txt: document -T/--timeformat option
470
471        [ Build ]
472
473        * Makefile: add a brief intro, avoid offline operations, add html and dist
474        targets, add rules for documentation, simplify listing, avoid offline
475        operations, bump waf to 1.9.6, check for waf before clean, chmod go-w
476        waflib, improve clean, use pip to install, factorise pip options, generate
477        more test sounds, improve test_python and test_pure_python, pass build_ext
478        in test_pure_python{,_wheel}, quieten uninstall_python if already
479        uninstalled, improve test targets, use bdist_wheel in test_pure_python,
480        build_ext only for --enable-double, verbose waf rules, add cleanwaf
481        * wscript: added debug/release build type configurations release (default)
482        enables optimizations, debug symbols are enabled in both configurations,
483        thanks to Eduard Mueller.
484        * wscript: add options to disable source_wavread/sink_wavwrite, add check
485        for stdarg.h, new rules 'manpages', 'sphinx', and 'doxygen' to build
486        documentation, add version to sphinx and manpages, disable libsamplerate
487        if double precision enabled (libsamplerate only supports float), fix typos,
488        remove trailing spaces, improve tarball creation (./waf dist), remove
489        full.cfg from tarball, prepend to CFLAGS to honor user cflags
490        * wscript, src/wscript_build: improve install locations using DATAROOTDIR,
491        MANDIR, INCLUDEDIR
492        * wscript: default to no atlas for now
493        * src/wscript_build: always build static library
494        * scripts/build_android: add an example script to build aubio on android,
495
496        [ Tools ]
497
498        * examples/aubionotes.c: use new notes, set minioi, send last note off when
499        needed, add warning for missing options
500        * examples/aubioonset.c: add minioi option, in seconds
501        * examples/: only send a last note off when using jack
502        * examples/: return 1 if object creation failed
503        * examples/: use PROG_HAS_OUTPUT, add PROG_HAS_SILENCE
504
505        [ Tests ]
506
507        * tests/src/spectral/test-fft.c: fix default size
508        * tests/src/spectral/test-phasevoc.c: fix typos
509        * tests/src/utils/test-log.c: add AUBIO_INF, add example for
510        aubio_log_set_function, improve messages
511
512        [ Python ]
513
514        * python/ext/aubiomodule.c: add aubio._aubio.__version__ and import it as
515        aubio.version, use custom logging function for errors and warnings, remove
516        duplicated add_generated_objects, use <> for non local aubio
517        * python/ext/py-cvec.c: use NPY_INTP_FMT
518        * python/ext/py-fft.c: use error string set in src/spectral/fft.c
519        * python/ext/py-phasevoc.c: use error string set in src/spectral/phasevoc.c
520        * python/ext/py-sink.c: always set samplerate and channels in init
521        * python/ext/py-source.c: use error string set in src/io/source.c
522        * python/lib/aubio/midiconv.py: add unicode double sharp and double flat,
523        improve unicode handling, skip UnicodeEncodeError on python 2.x
524
525        [ Python build ]
526
527        * MANIFEST.in: add src/**.c, exclude full.cfg, include waflib, remove
528        python/ext/config.h
529        * setup.py: define AUBIO_VERSION use sorted glob.glob to improve
530        reproducibility, remove extra quotes, remove status from version string,
531        update description, use custom build_ext instead of 'generate' command,
532        define HAVE_AUBIO_DOUBLE to 1 if needed
533        * python/lib/gen_code.py: add support for multiple _do outputs, fix number
534        of output, improve del_ function, safer DECREF, fix indentation, emit RuntimeError
535        * python/lib/gen_external.py: clean-up, enable tss, remove duplicate,
536        sort generated files
537        * python/lib/moresetuptools.py: add HAVE_STDARG_H, also check for
538        HAVE_AUBIO_DOUBLE, cleaner clean, look first for system library, then for
539        local build, then local sources, mo nore fake config.h here, use
540        samplerate in single precision only
541        * python/README.md: add a note about nose2 for python tests (closes #74)
542        * scripts/setenv_local.sh: python3 compat
543
544        [ Python demos ]
545
546        * python/demos/demo_alsa.py: add example using alsaaudio (closes #72)
547        * python/demos/demo_mfcc.py: add options to plot first and second
548        derivatives, and set samplerate/win_s/hop_s, thanks to @jhoelzl (closes #68)
549        * python/demos/demo_notes.py: add simple notes demos
550        * python/demos/demo_pyaudio.py: added simple demo for pyaudio, see #6,
551        closes #78, thanks to @jhoelzl and @notalentgeek, add some comments, avoid
552        overwriting aubio.pitch
553        * python/demos/demo_source_simple.py: fix indentation, make executable
554        * python/demos/demo_timestretch{,_online}.py: fix usage string, remove
555        unused import, use // to yield an integer (closes #71)
556        * python/demos/demo_timestretch_online.py: use 512, fix block counter
557        * python/demos/demo_tss.py: improve default parameters, exit before plotting
558
559        [ Python tests ]
560
561        * python/tests/: use local import, add __init__.py
562        * python/tests/test_cvec.py: simplify
563        * python/tests/test_fft.py: skip test fft(zeros).phas == 0 if needed, expected powerpc
564        * python/tests/test_fvec.py: reduce alpha norm precision to 10.-4
565        * python/tests/test_{midi2note,note2midi}.py: use nose2.params, add unicode tests
566        * python/tests/test_notes.py: add basic tests
567        * python/tests/test_notes.py: test results are correct for 44100Hz_44100f_sine441.wav
568        * python/tests/test_sink.py: add more tests, quiet warnings
569        * python/tests/test_source.py: break long line, check the tail of the file
570        is non-zero on non silent test files, filter user warnings to avoid spamming
571        the console, only check if last frames are non silent on brownnoise (weak),
572        remove fragile brownnoise test, check duration on short files, use nose2
573        params to process one sound file per test
574        * python/tests/test_specdesc.py: RuntimeError is now raised on wrong mode
575        * python/tests/utils.py: by default, use 5 seconds brownoise
576
577        [ Only in git ]
578
579        * .travis.yml: add debian dpkg-buildflags config, switch from precise to
580        trusty, sudo required, add ffmpeg on osx, add targets ios, iosimulator,
581        and osx noopt configs, bump to xcode8, add xcode8.2 config, mimick
582        build_apple_frameworks options, alway upgrade pip, add pip --version and
583        which pip after upgrading, remove --user, use expandwaf in install, remove
584        unused ARCH, shuffle order, remove duplicate, add missing opening quote,
585        use AUBIO_NOTESTS to build only lib on ios, add gitter webhook
586        * .appveyor.yml: fix path for windows+python 3.5, fix typo in path, make
587        nose2 tests verbose
588
5892016-08-16 Paul Brossier <piem@aubio.org>
590
591        [ Interface ]
592
593        * src/io/source.h, src/io/source_*.h: add _get_duration
594        * src/notes/notes.h: add basic notes object
595        * src/tempo/beattracking.{c,h}: add _get_period and _get_period_s
596        * src/mathutils.h: add fvec_ishift
597        * src/fvec.{c,h}: add fvec_weighted_copy
598        * src/tempo/tempo.{c,h}: add _get_period and _get_period_s, also add tatum,
599        a subdivision of the beat period, default to 4, implement get/set_delay
600        * src/**.{c,h}: use #ifdef HAVE_FOO, not #if _HAVE_FOO, add const qualifiers
601        to unmodified pointers (see #35)
602
603        [ Library ]
604
605        * src/{fmat,fvec,mathutils}.c: optimisations (using atlas or Accelerate when
606        available) for fvec_sum, fvec_mean, fvec_shift, aubio_level_lin,
607        fvec_set_all, fvec_zeros, fvec_weight, fvec_copy, fvec_weighted_copy,
608        fmat_vecmul
609        * src/aubio_priv.h: check for atlas cblas, use cblas_xswap, vDSP_dotpr,
610        protect SQR parameters, avoid redefining MIN/MAX, define PATH_MAX and PI
611        when needed, use _isnan on windows msvc 9 to avoid linking error, more
612        windows hacks
613        * src/mathutils.c: avoid for loop initial declarations [gcc], use
614        HAVE_ATLAS, use smpl_t for constants
615        * src/fmat.c: skip asserts
616        * src/spectral/{filterbank,mfcc}.c: use accelerated fmat_vecmul
617        * src/spectral/fft.c: fftw can be used odd length sizes, not Ooura,
618        factorise double / single flags, use memcpy
619        * src/spectral/phasevoc.c: fix arguments checks, return NULL when fft
620        creation failed , apply windowing for resynthesized grain, use ishift for
621        odd windows, fix scaling factors for correct reconstruction at 50 and 75%
622        overlap
623        * src/pitch/pitch.c: allow for silence == 0, improve error messages
624        * src/pitch/pitchmcomb.c: fix candidates sorting function, really comparing
625        current to next
626        * src/notes/notes.c: equivalent to previous examples/aubionotes.c results
627        * src/onset/onset.c: simplify selection of first onset, fix for "conversion
628        from 'smpl_t' to 'uint_t', possible loss of data" with msvc
629        * src/pitch/pitchmcomb.c: scan across all spectrum
630        * src/pitch/pitchyinfft.c: use fvec_weighted_copy
631        * src/{spectral/*.c,onset/*.c,tempo/*.c}: make sure win_size > 1
632        * src/io/*.c: use custom defines for {source,sink}_apple_audio, take a copy
633        of const char* path
634        * src/io/source_avcodec.c:
635         - update to libav10, libavcodec 55.34.1
636         - avoid deprecation warning, detect if we use ffmpeg or libav version
637         - check if the uri is a network stream using av_url_split, call
638         avformat_network_init() if needed
639         - check if we still need max_analyze_duration2 (closes #53, thanks to
640         @anthonylauzon)
641        * src/io/source_{avcodec,sndfile}.c: avoid modifying input param
642        * src/io/{sink,source,utils}_apple_audio.c: fix memory leak calling
643        CFRelease (closes #26, closes #27, and closes #28)
644        * src/io/sink_apple_audio.c: disable async mode for now, factorise code
645        * src/io/source_apple_audio.c: check out of bounds _seek, set s->path, quiet
646        * src/io/source_sndfile.c: fix crash, zero-pad output vector when
647        upsampling, use sf_read_double when compiling with AUBIO_DOUBLE, approximate
648        duration when resampling
649        * src/io/sink_sndfile.c: fix for double precision
650        * src/synth/sampler.c: fix typo, keeps a copy of uri
651        * src/tempo/tempo.c: do not write novelty function in output[1]
652        * src/temporal/resampler.c: make msvc happier adding a dummy variable
653        * src/temporal/filter.c: check parameters, fix filter_do_outplace to really
654        avoid modifying input
655        * src/utils/windll.c: add dll main entry point
656
657        [ Python ]
658
659        * General:
660          - new build system, new code generator
661          - Python 3 compatibility (#33), thanks to Nils Philippsen (@nphilipp)
662          - double precision compatibility
663          - simplify memory allocations, removed unneeded malloc/free calls
664          - fix memory leak (#49), check input sizes (#63) and output sizes (#60)
665          - improve indentation, clean up unused imports and variables
666          - fix comparison to None and to False
667        * setup.py: move from python/setup.py, add option to build libaubio inside
668        python-aubio (for instance with pip), add command 'generate' with option
669        '--enable-double', build with -Wdeclaration-after-statement -Werror
670        * python/ext/aubiomodule.c: fix PyMethodDef sentinel
671        * python/ext/aubioproxy.c: factorize input checks into
672        PyAubio_IsValidVector, fix windows c89 compilation, use npy_intp, not long
673        * python/ext: rewrite and simplify, safer and improved memory usage (#49),
674        improve error strings, verify actual object creation
675        * python/ext/py-source.c: added duration, check seek is not negative
676        * python/ext/py-musicutils.c: do not overwrite PyArg_ParseTuple messages
677        * python/lib/gen_code.py: new generator, switch to using custom PyObjects
678        instead of fvec, cvec, fmat, ready for double precision (defaults to single)
679        * python/lib/aubio__init__.py: use new aubio.float_type, make sure length is
680        not zero and float_type is imported
681        * python/lib/aubio/midiconv.py: fix instance checks, make sure midi2note
682        uses midi int (#33)
683        * python/lib/aubio/slicing.py: fix samplerate
684        * python/ext/aubio-types.h: add new_py_ functions to create PyObjects
685        instead of fvec_t, apply to generated and hard-coded objects
686        * python/lib/gen_external.py: improve compiler detection, fixes build on
687        windows (#55)
688        * python/lib/moresetuptools.py: helpers for windows and macos compilations
689
690        [  Python demos ]
691
692        * python/demos/demo_reading_speed.py: new reading speed tests, external
693        packages disabled by default
694        * python/demos/demo_timestretch.py: new timescale algorithm
695        * python/demos/demo_timestretch_online.py: new timescale algorithm (online
696        version)
697        * python/demos/demo_create_test_sounds.py: add script to create simple sound
698        files to test on using sox
699        * python/demos/demo_a_weighting.py: add simple demo for a_weighting
700        * python/demos/demo_filter.py: moved from _a_weighting
701        * python/demos/demo_mfcc.py: use n_coeffs
702        * python/demos/demo_bpm_extract.py: add exception type, avoid {} as default
703        argument value
704        * python/demos/demo_pysoundcard_*: update to pysoundcard 0.5.2 (closes #42)
705        * python/scripts/aubiocut: fix usage string output
706
707        [ Python tests ]
708
709        * python/tests/run_all_tests,*.py: switch to nose2, fix most prospect warnings
710        * python/tests/test_fvec.py: add test_pass_to_numpy, cope with accumulated
711        errors
712        * python/tests/test_cvec.py: simplify, add more tests
713        * python/tests/test_fft.py: more tests, fft.do to clash on wrong size
714        inputs, f.rdo input size, cvec is large enough, memory tests, avoid
715        VisibleDeprecationWarning
716        * python/tests/test_filterbank.py: check for wrong values, ValueError raised
717        * python/tests/test_filter.py: add tests
718        * python/tests/test_musicutils.py: simplify, check TypeError is raised
719        * python/tests/test_mfcc.py: more tests, check for wrong input size (see #63)
720        * python/tests/test_mathutils: fix test_miditobin test, can also raise
721        NotImplementedError (darwin)
722        * python/tests/test_note2midi.py: more tests, use unicode_literals
723        * python/tests/test_phasevoc.py: add a note about ocasional crash check
724        perfect reconstruction for overlap > 75% add 50% overlap test, fix duplicate
725        test name, add wrong sized input tests
726        * python/tests/test_sink.py: remove useless many_sinks_not_closed and cruft
727        * python/tests/test_source.py: simplify, quieten, skip tests if no test sounds
728        * python/tests/test_specdesc.py: check for wrong values, skip wrong name
729        test, use correct input size (see #63)
730        * python/tests/utils.py: try reopening the file is deleting it fails on windows
731        * python/VERSION: removed, use same VERSION file for libaubio and python-aubio
732        * MANIFEST.in: move from python/, update contents
733        * nose2.cfg: add minimal config, set multiprocess always-on=false (fixes
734        coverage, pass -N to speed up the tests)
735
736        [ Tools ]
737
738        * examples/*.c: add time format option
739        * examples/{aubioonset,aubiotrack}.c: also emit midi note, thanks to
740        @topas-rec (closes #62)
741        * examples/: use outmsg to print notes (fixes #8)
742        * examples/aubionotes.c: use new aubio_notes object
743        * examples/aubiotrack.c: enable -O and -t options, fix is_beat/is_silence
744        types
745        * examples/{parse_args,utils}.h: check in config.h if getopt.h was found, or
746        build without for msvc, more windows hacks
747        * examples/utils.c: change send_noteon to accept floating point midi note number
748
749        [ Tests ]
750
751        * tests/src/io/test-source_apple_audio.c: shorten long line
752        * tests/src/io/test-source_avcodec.c: use HAVE_LIBAV, closes #10
753        * tests/src/temporal: avoid crash, clarify
754        * tests/src/tempo/test-tempo.c: tempo back to only one output
755        * tests/src/test-delnull.c: improve test, avoid segfaults
756        * tests/src/test-lvec.c: use AUBIO_LSMP_FMT
757        * tests/utils_tests.h: add VA_ARGS versions of variadic macros
758        * tests/utils_tests.h: also use custom srandom/random when compiling with
759        -std=c99
760        * tests/utils_tests.h: make sure M_PI and RAND_MAX are defined
761
762        [ Build ]
763
764        * Makefile: set waf to 1.8.22 for now, new targets create_test_sounds,
765        build_python, test_python, clean_python, build_python3, clean_python3,
766        test_pure_python, test_pure_python_wheel, (use test_pure_* targets to build
767        without libaubio), use 'HAVE_DOUBLE=1 make' to build in double precision
768        * scripts/build_apple_frameworks: add script to build macosx and ios
769        frameworks (see #34, #43)
770        * scripts/build_emscripten: add script to build with emcc and co
771        * scripts/build_mingw: add script to cross-compile using mingw
772        * scripts/get_waf.sh: added simple script to fetch latest waf
773        * scripts/setenv_local.sh: set environment to run from built source tree
774        * scripts/setenv_local.sh: update to new python-aubio build location
775        * tests/wscript_build: do not install test programs
776        * tests/wscript_build, src/wscript_build: use 'use =', simplify
777        * src/wscript_build: enable shared lib on ios, static lib on windows
778        * wscript:
779          - update --enable-foo to fail if foo is not found
780          - add -mmacosx-version-min=10.4 on darwin
781          - add '-fembed-bitcode' on ios (closes #31), min to 6.1
782          - make fat build, add option to not build with Accelerate framework
783          - add option to not build with CoreAudio/AudioToolbox
784          - add --disable-docs option
785          - add -lm detection
786          - pass HAVE_AUBIO_DOUBLE in compiler arguments
787          - first check for headers, make getopt.h and unistd.h optional
788          - check HAVE_AV* from ctx.env
789          - make msvc compiler quieter, add /MD and /D_CRT_SECURE_NO_WARNINGS
790          - check if we find atlas/cblas.h
791          - new build platform emscripten
792          - more cleanups and updates
793
794        [ Only in git ]
795
796        * .travis.yml: config for https://travis-ci.org/aubio/aubio
797        * .appveyor.yml: config for https://ci.appveyor.com/project/piem/aubio
798        * .landscape.yml: config for https://landscape.io/github/aubio/aubio
799        * conda recipes: see https://github.com/conda/conda-recipes#387
800        * .gitignore: add python/tests/sounds and .egg-info
801
802        [ General ]
803
804        * src/: remove trailing spaces, improve doxygen strings, update copyrights,
805        fix typos
806        * src/onset/onset.h: fix description of get/set_delay functions
807        * src/spectral/mfcc.h: add link to reference implementation
808        * src/spectral/filterbank_mel.h: update reference url
809        * src/musicutils.h: update link to Bernardini's paper, improve doc
810        * doc/aubiomfcc.txt: add a note about the output
811        * doc/*.cfg: update to Doxygen 1.8.8
812        * python/README.md: fix typo (thanks to Sam Alexander), document how to
813        build in a virtualenv (see #2)
814        * README.md: minor updates, link to python/README.md, switch to https
815        * VERSION: bump to 0.4.3
816
8172015-08-01 Paul Brossier <piem@aubio.org>
818
819        [ Interface ]
820        * src/onset/onset.h: add aubio_onset_get_silence(), fix description of
821        aubio_onset_get/set_delay functions
822        * src/tempo/tempo.h: add aubio_tempo_get_silence and aubio_tempo_get_threshold
823
824        [ Library ]
825        * src/io/audio_unit.c: fix deprecation warning (closes #16)
826        * src/io/sink_apple_audio.c: avoid opening null path
827        * src/io/sink_sndfile.c: improve error messages, set nsamples after write
828        * src/io/sink_wavwrite.c: fail if samplerate is way too large, assume
829        windows is little endian to build with mingw32
830        * src/io/source_apple_audio.c: check out of bounds _seek, set s->path, quiet
831        * src/io/source_avcodec.c: update to libav10, libavcodec 55.34.1
832        * src/io/source_sndfile.c: cast to uint_t for now, clarify some variables
833        names, fix crash, zero-pad output vector when upsampling, improve seek errors and strings
834        * src/io/source_wavread.c: avoid orphan parenthesis , cast size_t to int to
835        avoid warning on win64 , improve seek errors processing , sync error message
836        * src/onset/onset.c: avoid doubled onset at start, check parameters
837        * src/pitch/pitch.c: add Hertz as valid unit string, check parameters
838        * src/pitch/pitchyin.c, src/pitch/pitchyinfft.c: avoid producing NaN on silence (closes #7)
839        * src/pitch/pitchyin.{c,h}: fix typo, developed
840        * src/spectral/phasevoc.c: fix argument checks, improve error messages
841        * src/synth/sampler.c: make sure blocksize > 0
842        * src/tempo/beattracking.c: avoid segfault on silence (closes #24)
843        * src/tempo/tempo.c: add silence detection (closes #23), add old behavior in
844        examples/aubiotrack.c, check parameters
845        * src/*.c: fix some useless float conversion
846
847        [ Python ]
848        * python/ext/aubiomodule.c: improve documentation
849        * python/ext/py-musicutils.c: add silence_detection (closes #21),
850        level_detection, db_spl, level_lin, complete window implementation
851        * python/ext/py-source.c: add channels, add seek (closes #9)
852        * python/demos/demo_a_weighting.py: add simple demo for a_weighting
853        * python/demos/demo_sink_multi.py: add multi channel version
854        * python/demos/, python/demos/: minor improvements, improve syntax (closes #19)
855        * python/setup.py: use setuptools, add numpy to install_requires
856
857        [ Build ]
858        * waf: removed, now automatically downloaded with make, updated to 1.8.12
859        * Makefile: add target to fetch waf and basic instructions
860        * .travis.yml: added template for travis continuous integration
861        * {examples,src,tests}/wscript_build: add external libs and uselib to targets
862        * src/wscript_build: do not hardocode install path
863        * wscript, src/io/*.c: use custom defines instead of __APPLE__
864        * wscript: make fat build optional, remove iOS sdk versioning
865
866        [ General ]
867        * examples/: use outmsg to print notes (fixes #8)
868        * examples/parse_args.h: improve short documentation (closes #12)
869        * doc/*.cfg: remove html timestamps to make build reproducible (see debian bug #779216)
870        * doc/aubiocut.txt: improve documentation
871        * doc/*.rst: add sphinx documentation basis with Makefile and conf.py
872        * README.md: minor updates
873        * python.old: removed old code
874        * tests/: minor bug fixing
875
8762014-01-31 Paul Brossier <piem@aubio.org>
877
878        [ Interface ]
879        * src/io/{source_wavread,sink_wavwrite}.h: new source and sink objects to
880        read and write simple wav files when building with no external dependencies
881        * src/io/{source,sink}*.h: added close functions to explicitly close file
882        * src/io/sink*.h: added do_multi, preset_channels, preset_samplerate,
883        get_channels and get_samplerate functions
884        * src/onset/onset.h: added aubio_onset_get_threshold
885        * src/mathutils.h: add fvec_quadratic_peak_mag to find the magnitude of
886        interpolated peaks
887
888        [ Library ]
889        * src/io/source_avcodec.c: implement _seek function
890        * src/io/source_sndfile.c: fixed _seek when signal is resampled
891        * src/spectral/ooura_fft8g.c: use float when double is not needed
892        * src/io/{source,sink}_apple_audio.c: improve error messages
893        * src/spectral/phasevoc.c: optimize swapbuffers by using memcpy
894        * src/lvec.c: add missing lvec_set_sample, improve test
895        * src/tempo/beattracking.c: improve confidence values by using interpolated
896        peak magnitude and avoiding nan
897        * src/tempo/tempo_davies.c: set default novelty function to specflux
898
899        [ Python module ]
900        * python/ext/py-{sink,source}.c: add do_multi and close functions
901        * python/ext/aubio-types.h: set NPY_NO_DEPRECATED_API to version 1.7
902        * python/lib/aubio/slicing.py: new function to slice a source into a list of
903        arbitrary regions
904        * python/scripts/aubiocut: add options --cut-until-nsamples and
905        --cut-until-nsclices, thanks to Mark Suppes for requesting, sponsoring,
906        and testing this feature
907
908        [ General code ]
909        * src/aubio_priv.h: use ifdefs to avoid checking undefined defines
910        * src/**.c: add missing prototypes, avoid some declarations after statement
911        * waf, waflib: update to 1.7.15
912
9132013-12-08  Paul Brossier <piem@aubio.org>
914
915        * Overdue: After more than five years of development behind the curtain,
916        time has come to release a new version of aubio.
917
918        * General: The library has been completely revised since 0.3.2. The API has
919        seen a major clean up, and has been thoroughly tested. The following list of
920        changes is not exhaustive.
921
922        * Memory management: allocation and freeing of memory has been optimized in
923        many ways. Several memory leaks and out of bound access have been fixed.
924
925        * Optimization: the FFT, central to most algorithms, can now be computed
926        using different optimized algorithms, depending on what is available on your
927        platform (FFTW, Ooura, or vDSP). Other simple optimization tricks are
928        included. Most can be deactivated by configuring the build accordingly.
929
930        * python/: The python interface has been completely rewritten to use numpy C
931        interface, making the aubio python module order of magnitudes faster than
932        the previous version. Several demos and tests are included.
933
934        * src/: source and header files are now organized in sub-directories.
935
936        * src/io/source.h: new source readers can now use any or all of libav,
937        CoreAudio, and libsndfile. This means that aubio can now easily read most
938        uncompressed and compressed formats. Compiled with libav, aubio can also
939        read audio from video files, and over the network.
940
941        * src/io/sink.h: a new sink object lets you write wav files with any number
942        of channels, at any samplerate, using libsndfile or CoreAudio.
943
944        * src/onset, src/tempo/, src/pitch: the different methods for onset, tempo,
945        and pitch extraction have seen many bug-fixes and optimizations.
946
947        * src/spectral/specdesc.h: new onset distances and statistical measures have
948        been added.
949
950        * src/spectral/filterbank.h: new filter bank to compute the energy in any
951        custom-defined frequency bands.
952
953        * src/spectral/mfcc.h, examples/aubiomfcc.c: a standard implementation of
954        the Mel-Frequency Cepstrum Coefficients algorithm has been added.
955
956        * src/temporal/{a,c}_weighting.h: standard implementation of the C-weighting
957        and A-weighting pre-processing filters are now provided for most commons
958        sampling rates.
959
960        * src/synth/wavetable.h, src/synth/sampler.h: provide basic ways to generate
961        some sounds.
962
963        * src/fvec.h: fvec_t, the vector object central to most aubio algorithms, is
964        now single channel. This simplifies the code of each algorithm greatly.
965
966        * src/lvec.h: lvec_t provides a double precision vector, required for some
967        operations to avoid floating point overflow
968
969        * src/fmat.h: fmat_t provides a single precision matrix, useful for
970        multi-channel operations and to some algorithms such as the spectral filter
971        bank.
972
973        * examples/: several new options, including new programs, have been
974        included. Refer to the documentation for details.
975
976        * tests/: several tests and examples programs have been added. This should
977        be a good place to look at to understand how to use aubio.
978
979        * doc/web.cfg: a simplified Doxygen configuration produces a simpler html
980        documentation.
981
982        * doc/*.txt: the manpages have been rewritten for txt2man.
983
984        * Build system: the build system has been switched from autotools/automake
985        to waf. Type './waf' or see README.md for instructions on how to use waf.
986
9872006-11-10  Paul Brossier <piem@altern.org>
988        * configure.ac: check c compiler for -Wextra option
989        * examples/*: add lash support to aubioonset, aubiotrack, and aubionotes
990        * */Makefile.am: improve compilation on Mac OS X, mingw and cygwin
991        * src/{onset,tempo}.[ch]: add simple c interfaces to onset and tempo tasks
992        * src/beattracking.c: allow the use of two beat trackers simultaneously
993        * examples/tests: add test programs for most c functions
994        * src/*.c: add most missing free calls
995        * src/*.c: fix some out of array writes
996        * src/,ext/: more gcc warning fixes
997
9982006-27-06  Paul Brossier <piem@altern.org>
999        * plugins/puredata/Makefile.am: move pd help to pattern-help.pd
1000                - thanks goes to Frank Barknecht
1001        * ext/sndfileio.c src/aubio_priv.h: fixes memset in aubio_priv.h, remove
1002                useless sfinfo.format=0 - thanks karsten wiese
1003        * ext/midi/midi_alsa_seq.c: do not call pthread_ in aubio_midi_direct_output
1004                - thanks karsten wiese
1005        * python/aubio/task/beat.py: task beat() output seconds
1006        * python/aubio/task/beat.py: ugly hack to plot beat track anyway
1007        * examples/aubionotes.c: fix signed/unsigned mismatches in examples
1008        * src/beattracking.c: fix signed/unsigned mismatches in beattracking
1009        * src/pitchfcomb.c: fix signed/unsigned mismatches in pitchfcomb
1010        * src/pitchschmitt.c: fix signed/unsigned mismatches in pitchscmitt
1011        * configure.ac: use -Wextra but unused parameters, fix macos CFLAGS
1012        * plugins/puredata/Makefile.am: simplify puredata Makefile.am
1013        * python/aubio/Makefile.am: avoid overwriting CFLAGS
1014        * examples/Makefile.am: use top_{build,src}dir instead of ../
1015        * configure.ac: make configure.ac more readable
1016        * python/aubio/task/cut.py: use os.path to derive default output filenames
1017        * VERSION: 0.3.1
1018
10192006-18-05 Paul Brossier <piem@altern.org>
1020        * src/pitchyinfft.{c,h}: new pitch detection method
1021        * src/beattracking.c: algorithm improved
1022        * plugins/puredata/: new puredata external
1023        * python/tasks: enhancements to the onset detection algorithms
1024        * python/aubiocut: improved, can now slice at beats and silences
1025        * python/aubiopitch: new python program to extract pitch tracks
1026        * python/: plotting features for aubiocut and aubiopitch
1027        * python/: interface refactored
1028        * doc/: updated documentation
1029        * VERSION: 0.3.0
1030
10312006-18-05  Paul Brossier <piem@altern.org>
1032        * src/beattracking.c: added beattracking.c
1033        * various bug fixes
1034        * VERSION: 0.2.0
1035
10362005-29-03  Paul Brossier <piem@altern.org>
1037        * python/aubio/gnuplot.py: clean up and add plotsound
1038        * python/aubiocompare-onset: updated
1039        * examples/aubioonset.c: fix text output when nframes<4
1040        * ext/midi/midi_file.c: by default, int is unsigned on powerpc
1041        * python/aubiocut, python/aubio/aubioclass.py: updated
1042        * ext/midi/midi_alsa_seq.c: activated threading
1043        * configure.ac,Makefile.am: added rules to check presence
1044         of swig, python, puredata and docbook-to-man.
1045
10462005-17-03  Paul Brossier <piem@altern.org>
1047        * examples/utils.{c,h}:  corrected usedoubled and -O interactions
1048        * examples/aubioonset.c: added frames>=4 check (thanks Hamish Allan)
1049
10502004-12-11  Paul Brossier <piem@altern,org>
1051        * swig/Makefile.am: instructions moved to python/aubio and cleaned
1052        * python/aubiocut: corrected slicing on multichannel files
1053        * VERSION: bumped to 0.1.8
1054
10552004-12-06  Paul Brossier <piem@altern.org>
1056        * examples/{midi*,testforclam}.c: removed
1057        * src/{sndfile,midi*,jackio}.[ch]: moved to ext
1058
10592004-12-03  Paul Brossier <piem@altern.org>
1060        * src/{mathutils,pitchyin}.h: got rid of some shadowed declarations
1061        * plugins/puredata: first puredata plugin attempt added
1062
10632004-11-30  Paul Brossier <piem@altern.org>
1064        * configure.ac: added -lmx on macosx
1065        * python/aubiocut: seeks for local minima before peak
1066                           added zero crossing search
1067        * src/pitchyinc.c: adds draft for all-in-one faster function
1068        * examples/*.c: added ladcca client (needs work)
1069        * examples/aubioonset.c: cleaned up verbose stdout
1070        * doc/aubio.css: updated
1071
10722004-10-28  Paul Brossier <piem@altern.org>
1073        * src/Makefile.am: added config.h installation
1074        * VERSION: 0.1.7.1
1075
10762004-10-26  Paul Brossier <piem@altern.org>:
1077        * src/pitchdetection.*: moved to src/pitchmcomb.*, now includes a
1078        draft driver for transparent use of mcomb or yin
1079        * src/pitchmcomb.*: added from old src/pitchdetection.*
1080        * VERSION: 0.1.7
1081
10822004-10-20  Paul Brossier <piem@altern.org>:
1083        * configure.ac: made fftw3f, alsa and jack optional
1084        * src/fft.{c,h}: now uses FFTW3F_SUPPORT
1085        * src/timer.c: #if 0 on win32 version
1086
10872004-10-18  Paul Brossier <piem@altern.org>:
1088        * src/{fft,cvec,pvoc}.c: fixed fft size (N/2+1)
1089        * src/{onsetdetection,tss}.c: fixed sizes as well
1090        * src/pvoc.c: fixed resynthesis scaling factor (still missing
1091        windowing), windowing added in pvoc_rdo
1092        * src/fft.h: removed FFTW typedef
1093        * configure.ac: removed AC_ISC_POSIX to compile on mingw32
1094        * src/fft.c: removed useless fftw3.h include
1095        * src/pitchmcomb.c: removed call to vec_adapt_thres (writes out of
1096        bounds)
1097
10982004-10-17  Paul Brossier <piem@altern.org>
1099        * src/sample.c: removed static _malloc, set all 0. (fixes nan bugs)
1100        * examples/*.c: removed useless pvoc inits
1101        * src/pitchyin.c: based on de Cheveigne paper
1102
11032004-09-17  Paul Brossier <piem@altern.org>
1104        * configure.ac,src/Makefile.am: cleaned up autotools process
1105        * examples/aubio*.c: removed some useless code.
1106        * src/sample.c: removed crazy call to memset
1107
11082004-09-02  Paul Brossier <piem@altern.org>
1109        * src/sndfileio.c: removed abusive call to AUBIO_ARRAY,
1110        defined MAX_SIZE instead.
1111        * src/onsetdetection.c: rewritten free_function.
1112        * src/phasevoc.c: in aubio_pvoc_rdo, one way writing only
1113        * swig/, python/aubio: added swig wrapper, played a bit with
1114        python interface.
1115        * src/aubio.h: now includes midi_driver.h
1116
11172004-06-25  Paul Brossier <piem@altern.org>
1118        * src/peakpick.h:
1119           renamed pickparams_t to aubio_pickpeak_t
1120           disabled samer_pp (broken)
1121           added del_aubio_peakpick
1122           added aubio_peakpick_pimrt_wt (thanks mramirez)
1123        * python/aubio/onsetcompare.py: now works on huge list
1124           thanks goes to Nicolas Wack
1125        * examples/aubionotes.c: now outputs NOTEONs
1126        * configure.ac: quick hack to disable jack and alsa
1127        * examples/*usingjack*: more hacking to disable jack
1128        * README: some updates
1129
11302004-06-23  Paul Brossier <piem@altern.org>
1131        * src/*.h: added C++ ifdefs in header files
1132        * src/fft.h: removed complex.h include in header
1133        * src/hist.c: fixed out of array indexes
1134                thanks Miguel Ramirez!
1135        * src/Makefile.am: added install headers
1136        * doc/Makefile.am: removed dist-hook to update-docs
1137        * sounds/Makefile.am: added install hooks
1138        * aubio.pc.in: added aubio.pc generation for pkg-config
1139        * python: added some evaluation functions
1140        * src/aubio_priv.h: moved AUBIO_DBG to stderr
1141        * examples/utils.h: now outputs on stdout
1142        * examples/midi*.c: fixed compilation with gcc-2.95
1143        * VERSION: 0.1.4
1144
11452004-04-27  Paul Brossier <piem@altern.org>
1146        * pitchdetection.c: fixed, still not great
1147        * Makefile.am: fixed missing headers (thank you Charbel)
1148        * aubioonset,aubionotes: renamed for install (were *demo files)
1149        * First working release: 0.1.3
1150
11512004-01-31  Paul Brossier <piem@altern.org>
1152        * pitchdetection.c: working, still a bit too picky
1153        * filter.c: sizeable biquad, fixed via pitchtest.c
1154        * types.h: added file, all generic system wide types.
1155        * tss.c: added some speed improvements
1156
11572004-01-20  Paul Brossier <piem@altern.org>
1158        * peakpick.c: working real time onset detection
1159        * biquad.c: needs fixing
1160
11612004-01-10  Paul Brossier <piem@altern.org>
1162        * long time i didn't touch this file
1163        * added various objects
1164        * working onsetdetectors
1165        * various examples
1166        * splitted in a dynamic library
1167        * functions renamed (new_. del_. aubio_._do)
1168        * VERSION: 0.1.0_alpha
1169
11702003-11-04  Paul Brossier <piem@altern.org>
1171        * aubio.h: degrouping in modules
1172        * VERSION: 0.0.6_alpha
1173
11742003-11-03  Paul Brossier <piem@altern.org>
1175        * phasevoc.c: fixed memory acces
1176        * jackio.c: moving to ringbuffer type implementation
1177        * VERSION: 0.0.4_alpha
1178
11792003-11-03  Paul Brossier <piem@altern.org>
1180        * jackio.c: added jack support
1181        * aubioenc.c: fixed memory freeing bugs
1182        * VERSION: 0.0.3_alpha
1183
11842003-10-29  Paul Brossier <piem@altern.org>
1185        * aubio.h: Grouping all headers
1186        * makefile.am: Running first make dist
1187        * VERSION: 0.0.2alpha
1188 
11892003-10-18  Paul Brossier <piem@altern.org>
1190        * aubioenc.c: Working phase vocoder
1191        * VERSION: 0.0.1alpha
Note: See TracBrowser for help on using the repository browser.