[source] simplify and avoid unrequired checks
[aubio.git] / ChangeLog
index 2f2ce32..e03dec6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,233 @@
+2018-11-21 Paul Brossier <piem@aubio.org>
+
+       [ Overview ]
+
+       * VERSION: bump to 0.4.8
+       * notes: new option release_drop (gh-203)
+       * spectral: new parameters added to filterbank and mfcc (gh-206)
+       * python: start documenting module (gh-73, debian #480018), improve build for
+       win-amd64 (gh-154, gh-199, gh-208)
+       * fixes: prevent crash when using fft sizes unsupported by vDSP (gh-207),
+       prevent saturation when down-mixing a multi-channel source (avcodec/ffmpeg)
+
+       [ Fixes ]
+
+       * avcodec: prevent saturation when down-mixing a multi-channel source, emit
+       a warning if compiling against avutil < 53 (gh-137), wrap long lines
+       * examples/: avoid hiding global and unreachable code
+       * fft: limit to r*2*n sizes, with r in [1, 3, 5, 15] (vDSP only) (gh-207)
+       * fft: fix reconstruction for odd sizes (fftw only)
+       * pvoc: add missing implementations for aubio_pvoc_get_hop/win
+       * mathutils: increase ln(2) precision of in freqtomidi/miditofreq
+       * wavetable: stop sets playing to 0, add dummy implementation for _load
+
+       [ New features ]
+
+       * src/musicutils.h: new aubio_meltohz, aubio_hztomel, with _htk versions
+       * src/spectral/filterbank.h: new set_mel_coeffs, set_mel_coeffs_htk,
+       set_power, and set_norm methods, improved set_triangle_bands
+       * src/spectral/mfcc.h: new set_scale, set_power, set_norm, set_mel_coeffs,
+       set_mel_coeffs_htk, set_mel_coeffs_slaney
+       * src/mathutils.h: new fvec_mul
+       * src/notes: new option release_drop to prevent missing note-offs (gh-203)
+
+       [ Python module ]
+
+       * fix: rounding to nearest integer in midi2note and freq2note
+       * general: supports code generation of setters with none or multiple
+       parameters
+       * documentation: add docstrings do fvec, cvec, source, sink, pvoc, frequency
+       conversion and level detection routines (gh-73, debian #480018)
+       * slicing: improve and document slice_source_at_stamps
+       * module: new note2freq function, recover error log when raising exceptions
+       on failed set_ methods, prevent cyclic import, coding style improvements
+       * demos: improve coding style, fix bpm_extract arguments
+       * MANIFEST.in: exclude *.pyc, improve patterns
+
+       [ Documentation ]
+
+       * doc/: use sphinx autodoc to load docstrings from aubio module, reorganize
+       python module documentation, add a note about double precision, use https
+       when possible
+       * src/spectral/: update Auditory Toolbox url, update copyright year
+
+       [ Tools ]
+
+       * aubionotes: add --release-drop option
+       * aubio: add --release-drop and --silence options to `aubio notes`,
+       workaround for -V to really show version (py2)
+       * aubiocut: add option --create-first to always create first slice
+
+       [ Tests ]
+
+       * tests/, python/tests: add tests for new methods, check source channel
+       down-mix, improve coverage
+
+       [ Build system ]
+
+       * Makefile: disable docs when measuring coverage, add branch coverage
+       option, add coverage_zero_counters target, improve html report
+       * waf: update to 2.0.12, improve wscript style, prevent shipping some
+       generated files
+       * python: always show compiler warnings when pre-processing headers,
+       workaround to fix code generation for win-amd64 (gh-154, gh-199, gh-208).
+       * continuous integration: add azure pipelines, update and improve
+       configurations for appveyor, circleci, and travis.
+
+2018-09-22 Paul Brossier <piem@aubio.org>
+
+       [ Overview ]
+
+       * VERSION: bump to 0.4.7
+       * src/spectral/dct.h: add dct type II object with optimised versions
+       * src/io/, src/notes/, src/pitch: prevent crashes on corrupted files
+       * examples/: fix jack midi output, improve messages when jack disabled
+       * python/: add dct support, minor bug fixes tests and demos
+       * wscript: improve support for BLAS/ATLAS
+
+       [ Library fixes ]
+
+       * src/pitch/pitchyinfft.c: fix out of bound read when samplerate > 50kHz
+       thanks to @fCorleone (closes #189, CVE-2018-14523, debian #904906)
+       * src/notes/notes.c: bail out if pitch creation failed (see #188)
+       * src/io/source_wavread.c:
+        - also exit if samplerate is negative (closes #188, CVE-2018-14522,
+        debian #904907)
+        - add some input validation (closes #148 and #158, CVE-2017-17054,
+        debian #883355)
+       * src/io/source_avcodec.c:
+        - give up if resampling context failed opening (see #137, closes #187,
+        CVE-2018-14521, debian #904908)
+        - give up reading file if number of channel changes during stream (closes
+        #137, CVE-2017-17554, debian #884237)
+        - make sure libavutil > 52 before checking avFrame->channels (see #137)
+        - fix build with ffmpeg 4.0, thanks to @jcowgill (closes #168, #173)
+        - avoid deprecated call for ffmpeg >= 4.0
+       * src/onset/onset.c: add dummy default parameters for wphase (closes #150)
+
+       [ Tools ]
+
+       * examples/parse_args.h: hide jack options if not available, improve error
+       message (closes #182)
+       * examples/utils.h: process_block returns void
+       * examples/utils.c: fix examples failing to send more than one JACK midi
+       event per frame, thanks to @cyclopsian (closes #201)
+
+       [ New features ]
+
+       * src/spectral/dct.h: add dct type II object with implementation factory
+       * src/spectral/dct_plain.c: add plain dct implementation
+       * src/spectral/dct_ooura.c: add ooura implementation
+       * src/spectral/dct_fftw.c: add fftw implementation
+       * src/spectral/dct_ipp.c: add ipp version
+       * src/spectral/dct_accelerate.c: add vdsp/accelerate dct
+       * tests/src/spectral/test-dct.c: check reconstruction works
+       * src/spectral/mfcc.c: use new dct to compute mfcc
+
+       [ Library internals ]
+
+       * src/aubio_priv.h: avoid hard-coded undefs, split BLAS and ATLAS support,
+       add vdsp scalar add and multiply
+
+       [ Build system ]
+
+       * wscript:
+        - add options to disable examples and tests
+        - detect includes for openblas/libblas/atlas
+       * scripts/get_waf.sh: bump to 2.0.11, verify signature if gpg available
+       * python/lib/gen_external.py: pass '-x c' to emcc only
+
+       [ Python ]
+
+       * python/lib/gen_code.py: add support for rdo methods
+       * python/tests/test_dct.py: add tests for new dct
+       * python/demos/demo_pitch_sinusoid.py: use // to yield an integer, fixing
+       demo on py3, thanks to @ancorcruz (closes #176)
+       * python/ext/py-musicutils.*: add shift(fvec) and ishift(fvec)
+       * python/tests/test_fvec_shift.py: add tests for shift() and ishift()
+       * python/lib/aubio/cmd.py: fix typo in comment
+
+       [ Documentation ]
+
+       * README.md, doc/statuslinks.rst: use latest for commits-since
+       * examples/parse_args.h: add yinfast to pitch algorithms
+       * doc/requirements.rst: add some blas documentation
+       * doc/requirements.rst: split media/optimisation libraries
+       * doc/develop.rst: fixed spelling error, thanks to Jon Williams (closes #161)
+       * doc/aubio{pitch,notes}.txt: add yinfast to list of pitch methods
+
+       [ Continuous integration ]
+
+       * .travis.yml: remove xcode8.2 builds, group osx, add alias pip=pip2
+       * .appveyor.yml: upgrade pip first, always use python -m pip
+
+2017-10-02 Paul Brossier <piem@aubio.org>
+
+       [ Overview ]
+
+       * VERSION: bump to 0.4.6
+       * src/spectral/fft.c, src/*.c: add support for Intel IPP (many thanks to
+       Eduard Mueller)
+       * wscript: add support for emscripten (thanks to Martin Hermant)
+       * src/pitch/pitchyinfast.h: new fast method to compute YIN algorithm
+       * src/pitch/pitchyin*.c: improve confidence measure, making sure its value
+       corresponds to the selected period (thanks to Eduard Mueller)
+       * python/lib/aubio/cmd.py: add `quiet`, `cut`, and `help` subcommands
+
+       [ Library ]
+
+       * src/aubio_priv.h: add missing aubio_vDSP_vclr (Eduard Mueller)
+       * src/io/source_avcodec.c: improve error message, prevent un-opened bracket,
+       no declaration after statements for older compilers, avoid unused variable
+       * src/mathutils.c: prevent segfault with Accelerate.framework (closes #58,
+       closes #102)
+       * src/spectral/phasevoc.h: add aubio_pvoc_set_window to change the windowing
+       function
+       * src/mathutils.c: add window type `ones` (no windowing)
+
+       [ Python ]
+
+       * python/demos/demo_tapthebeat.py: add a real-time example to play beats
+       using pyaudio
+       * python/lib/gen_external.py: improve parsing and syntax, use results in
+       emscripten build (Martin Hermant)
+       * python/lib/aubio/cmd.py: add option `-u` to `aubio pitch`, improve error
+       messages, add `quiet` subcommand (closes #124), improve syntax, add some
+       documentation, add `cut` and `help` subcommand, add silence and time format
+       options
+       * python/lib/aubio/cut.py: upgrade to argparse, set samplerate as needed
+       * python/demos/demo_yin_compare.py: add comparison of yin implementations
+       * python/demos/demo_wav2midi.py: add an example to create a midi from a
+       sound file using mido (closes: #134)
+       * python/demos/demo_bpm_extract.py: use argparse, use beats_to_bpm function
+       * python/ext/py-cvec.c: fix support for pypy by changing setters to return a
+       negative value on error (closes #17)
+
+       [ Documentation ]
+
+       * src/tempo/beattracking.h: fix typo (thanks to Hannes Fritz)
+       * doc/requirements.rst: fix broken link (thanks to @ssj71, closes #99)
+       * doc/aubiomfcc.txt: fix typo in 'coefficients'
+
+       [ Tests ]
+
+       * python/tests/tests_aubio_{cmd,cut}.py: add basic tests
+       * python/tests/test_filterbank*.py: ignore UserWarnings, clean-up,
+       improve get_coeff tests
+
+       [ Build system ]
+
+       * wscript: add support for emscripten, see scripts/build_emscripten
+       * scripts/get_waf.sh: update waf to 2.0.1, build waf from source tarball
+       * scripts/build_emscripten: update to build aubio.js
+       * Makefile: add coverage and coverage_report targets, run tests once
+
+       [ Continuous integration ]
+
+       * .travis.yml: add coverage report on osx
+       * .appveyor.yml: use msvc 14.0 (VS 2015) and scripts/get_waf.sh
+       * .coveragerc: add minimal python coverage configuration
+
 2017-04-10 Paul Brossier <piem@aubio.org>
 
        [Overview]