X-Git-Url: https://git.aubio.org/?p=aubio.git;a=blobdiff_plain;f=ChangeLog;h=e03dec66d4b5009f564f85114c12c05550449769;hp=bc6b4ca63e1cf8d61e4a14d4fed456c86110b148;hb=a4df8aaa1b7e40ce1e165a82ff41864b1c6209ab;hpb=28832ea8bd5568d522017692406d26788962b561 diff --git a/ChangeLog b/ChangeLog index bc6b4ca6..e03dec66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,512 @@ -2015-08-16 Paul Brossier +2018-11-21 Paul Brossier + + [ 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 + + [ 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 + + [ 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 + + [Overview] + + * VERSION: bump to 0.4.5 + * src/io/source_avcodec.c: add support for libswresample + * aubio: new python command line tool to extract information + * src/onset/onset.c: add spectral whitening and compression, improve default + parameters + * this_version.py: use centralized script to get current version, adding git + sha when building from git repo (thanks to MartinHN) + + [Interface] + + * src/spectral/awhithening.h: add adaptive whitening + * src/{cvec,mathutils,musicutils}.h: add cvec_logmag, fvec_logmag, and fvec_push + * src/onset/onset.h: add aubio_onset_set_default_parameters to load optimal + parameters of each novelty function, _{set,get}_compression and + _{set,get}_awhitening to turn on/off compression and adaptive whitening + * src/spectral/specdesc.h: add weighted phase + + [Library] + + * src/onset/onset.c: improve default onset parameters (thanks to @superbock + for access to his evaluation database), see commit dccfad2 for more details + * src/pitch/pitch.c: avoid segfault when using invalid parameters + * src/temporal/biquad.c: fix biquad parameters initialization (thanks to + @jurlhardt) + + [Tools] + + * examples/aubio{onset,track}.c: add options --miditap-note and + --miditap-velo to set which midi note is triggered at onset/beat (thanks to + @tseaver) + * examples/aubioonset.c: show actual parameters in verbose mode + * examples/utils.c: improve memory usage to emit midi notes + + [Python] + + * python/ext/py-source.c: add with (PEP 343) and iter (PEP 234) interface + * python/ext/py-sink.c: add with interface (PEP 343) + * python/lib/aubio/cmd.py: new `aubio` command line tool + * python/lib/aubio/cut.py: moved from python/scripts/aubiocut + + [Documentation] + + * doc/*.rst: reorganize and improve sphinx manual + * doc/*.txt: update manpages, add simple manpage for aubio command line + * doc/full.cfg: derive from doc/web.cfg + * README.md: simplify and add contribute information + + [Build system] + + * wscript: prefer libswresample over libavsamplerate when available, use + current version in manpages, doxygen, and sphinx, update to newest waf + * setup.py: use entry_points console_scripts to generate scripts, use + centralized version from this_version.py, clean up + * python/lib/moresetuptools.py: detect if libswresample is available + +2017-01-08 Paul Brossier + + [ Overview ] + + * VERSION: bump to 0.4.4 + * src/utils/log.h: new function to redirect log, error, and warnings + * python/: AUBIO_ERR raises python exception, AUBIO_WRN to emit py warning + * doc/: add some documentation, fix errors in manpages + * wscript: new rules to build 'manpages', 'doxygen', and 'sphinx', new + --build-type= option (thanks to Eduard Mueller) + * src/notes/notes.h: add minioi and silence methods + * examples/: add --minioi (minimum inter-onset interval) option + * src/pitch/pitchyin.c: improve msvc compiler optimisations (thanks to + Eduard Mueller) + * python/, src/: improve error messages, fix minor memory leaks + * src/io/source_avcodec.c: improve compatibility with latest ffmpeg and with + older libav/ffmpeg versions + * python/demos/: new demos to capture microphone in real time + + [ Interface] + + * src/aubio.h: include utils/log.h + * src/utils/log.h: add new aubio_log_set_function to redirect log messages + * src/notes/notes.h: add aubio_notes_{get,set}_minioi_ms, add + _{get,set}_silence methods + + [ Library ] + + * src/aubio_priv.h: add AUBIO_INF to print to stdout with header, use new + logging function, add ATAN alias, add stdarg.h, move #include "config.h" + * src/{fmat,fvec}.c: avoid integer division + * src/pitch/pitchyin.c: [msvc] help compiler to optimize aubio_pitchyin_do + by giving it addresses for all arrays which are referenced in inner loops, + thanks to Eduard Mueller. + * src/pitch/pitch.c: declare internal functions as static, fail on wrong + method, warn on wrong unit, improve error messages, fix error string + * src/spectral/specdesc.c: return NULL if wrong mode asked, remove trailing + spaces + * src/onset/onset.c: return null and clean-up if new_aubio_specdesc failed, + fix error message + * src/notes/notes.c: use midi note to store pitch candidate, round to + nearest note, add a variable to define precision, fix out-of-bound write, + fix unset silence_threshold, fix error message + * src/spectral/ooura_fft8g.c: add cast to avoid conversion warnings, prefix + public function with aubio_ooura_ to avoid with other apps using ooura (e.g. + puredata), make internal functions static, + * src/spectral/fft.c: add message about fftw3 being able to do non-power of + two sizes, make calls to fftw_destroy_plan thread-safe, use prefixed + aubio_ooura_rdft + * src/spectral/phasevoc.c: fix error string + * src/temporal/resampler.c: throw an error when using libsamplerate with doubles + * src/io/ioutils.h: add functions to check samplerate and channels, use in sink_*.c + * src/io/source.c: add error message when aubio was compiled with no source, + only show error message from last child source_ + * src/io/source_avcodec.c: call avformat_free_context after + avformat_close_input, keep a reference to packet to remove it when closing + file, avoid deprecation warnings with ffmpeg 3.2, add backward compatibility + for libavcodec55, fix for old libavcodec54, use AV_SAMPLE_FMT_DBL when + compiling with HAVE_AUBIO_DOUBLE, fix missing samples in eof block, avoid + function calls before declarations, improve error messages, replace with new + context before closing old one, make sure s->path is set to null + * src/io/{source_wavread,sink_wavwrite}.c: declare internal functions as static + * src/io/source_wavread.c: fix bytes_read for JUNK headers, improve error + messages, initialize buffer, skip chunks until data is found, or abort, skip + junk chunk + * src/io/source_sndfile.c: add support for multi-channel resampling, set + handle to null after sucessful close, add missing floor in ratio comparison, + improve formatting + * src/io/sink.c: only show error message from last child sink_ + * src/io/sink_apple_audio.c: avoid crash on empty file name + * src/io/sink_sndfile.c: improve error message + * src/io/sink_{sndfile,wavwrite}.c: use AUBIO_MAX_CHANNELS, fix error message + + [ Documentation ] + + * README.md: update copyright dates, use https + * src/aubio.h: add some links to examples, use https + * src/pitch/pitch.h: add aubio_pitch_get_tolerance, add basic description of + unit modes + * src/notes/notes.h: add doxygen header + * src/spectral/fft.h: strip example path + * doc/*.rst: improve sphinx documentation + * doc/android.rst: add reference to it scripts/build_android + * doc/debian_packages.rst: added page on debian packages + * doc/python_module.rst: add demo_source_simple.py, add note on pip, add + `print(aubio.version)` + * doc/cli.rst: include command line manpages + * doc/cli_features.rst: add matrix of command line features + * doc/requirements.rst: add a note about --notests (closes #77), document + --msvc options, improve description of options + * doc/download.rst: added page on download + * doc/installing.rst: update + * doc/xcode_frameworks.rst: added page on xcode frameworks + * doc/**: use https://aubio.org + * doc/conf.py: use pyramid theme, update copyright, remove hardcoded path + * doc/web.cfg: exclude ioutils from doc + * doc/aubionotes.txt: document -M option (see #18), + * doc/aubioonset.txt: add documentation for -M, --minioi, improve threshold + description (thanks to Peter Parker), fix typo (onset, not pitch) + * doc/aubio*.txt: document -T/--timeformat option + + [ Build ] + + * Makefile: add a brief intro, avoid offline operations, add html and dist + targets, add rules for documentation, simplify listing, avoid offline + operations, bump waf to 1.9.6, check for waf before clean, chmod go-w + waflib, improve clean, use pip to install, factorise pip options, generate + more test sounds, improve test_python and test_pure_python, pass build_ext + in test_pure_python{,_wheel}, quieten uninstall_python if already + uninstalled, improve test targets, use bdist_wheel in test_pure_python, + build_ext only for --enable-double, verbose waf rules, add cleanwaf + * wscript: added debug/release build type configurations release (default) + enables optimizations, debug symbols are enabled in both configurations, + thanks to Eduard Mueller. + * wscript: add options to disable source_wavread/sink_wavwrite, add check + for stdarg.h, new rules 'manpages', 'sphinx', and 'doxygen' to build + documentation, add version to sphinx and manpages, disable libsamplerate + if double precision enabled (libsamplerate only supports float), fix typos, + remove trailing spaces, improve tarball creation (./waf dist), remove + full.cfg from tarball, prepend to CFLAGS to honor user cflags + * wscript, src/wscript_build: improve install locations using DATAROOTDIR, + MANDIR, INCLUDEDIR + * wscript: default to no atlas for now + * src/wscript_build: always build static library + * scripts/build_android: add an example script to build aubio on android, + + [ Tools ] + + * examples/aubionotes.c: use new notes, set minioi, send last note off when + needed, add warning for missing options + * examples/aubioonset.c: add minioi option, in seconds + * examples/: only send a last note off when using jack + * examples/: return 1 if object creation failed + * examples/: use PROG_HAS_OUTPUT, add PROG_HAS_SILENCE + + [ Tests ] + + * tests/src/spectral/test-fft.c: fix default size + * tests/src/spectral/test-phasevoc.c: fix typos + * tests/src/utils/test-log.c: add AUBIO_INF, add example for + aubio_log_set_function, improve messages + + [ Python ] + + * python/ext/aubiomodule.c: add aubio._aubio.__version__ and import it as + aubio.version, use custom logging function for errors and warnings, remove + duplicated add_generated_objects, use <> for non local aubio + * python/ext/py-cvec.c: use NPY_INTP_FMT + * python/ext/py-fft.c: use error string set in src/spectral/fft.c + * python/ext/py-phasevoc.c: use error string set in src/spectral/phasevoc.c + * python/ext/py-sink.c: always set samplerate and channels in init + * python/ext/py-source.c: use error string set in src/io/source.c + * python/lib/aubio/midiconv.py: add unicode double sharp and double flat, + improve unicode handling, skip UnicodeEncodeError on python 2.x + + [ Python build ] + + * MANIFEST.in: add src/**.c, exclude full.cfg, include waflib, remove + python/ext/config.h + * setup.py: define AUBIO_VERSION use sorted glob.glob to improve + reproducibility, remove extra quotes, remove status from version string, + update description, use custom build_ext instead of 'generate' command, + define HAVE_AUBIO_DOUBLE to 1 if needed + * python/lib/gen_code.py: add support for multiple _do outputs, fix number + of output, improve del_ function, safer DECREF, fix indentation, emit RuntimeError + * python/lib/gen_external.py: clean-up, enable tss, remove duplicate, + sort generated files + * python/lib/moresetuptools.py: add HAVE_STDARG_H, also check for + HAVE_AUBIO_DOUBLE, cleaner clean, look first for system library, then for + local build, then local sources, mo nore fake config.h here, use + samplerate in single precision only + * python/README.md: add a note about nose2 for python tests (closes #74) + * scripts/setenv_local.sh: python3 compat + + [ Python demos ] + + * python/demos/demo_alsa.py: add example using alsaaudio (closes #72) + * python/demos/demo_mfcc.py: add options to plot first and second + derivatives, and set samplerate/win_s/hop_s, thanks to @jhoelzl (closes #68) + * python/demos/demo_notes.py: add simple notes demos + * python/demos/demo_pyaudio.py: added simple demo for pyaudio, see #6, + closes #78, thanks to @jhoelzl and @notalentgeek, add some comments, avoid + overwriting aubio.pitch + * python/demos/demo_source_simple.py: fix indentation, make executable + * python/demos/demo_timestretch{,_online}.py: fix usage string, remove + unused import, use // to yield an integer (closes #71) + * python/demos/demo_timestretch_online.py: use 512, fix block counter + * python/demos/demo_tss.py: improve default parameters, exit before plotting + + [ Python tests ] + + * python/tests/: use local import, add __init__.py + * python/tests/test_cvec.py: simplify + * python/tests/test_fft.py: skip test fft(zeros).phas == 0 if needed, expected powerpc + * python/tests/test_fvec.py: reduce alpha norm precision to 10.-4 + * python/tests/test_{midi2note,note2midi}.py: use nose2.params, add unicode tests + * python/tests/test_notes.py: add basic tests + * python/tests/test_notes.py: test results are correct for 44100Hz_44100f_sine441.wav + * python/tests/test_sink.py: add more tests, quiet warnings + * python/tests/test_source.py: break long line, check the tail of the file + is non-zero on non silent test files, filter user warnings to avoid spamming + the console, only check if last frames are non silent on brownnoise (weak), + remove fragile brownnoise test, check duration on short files, use nose2 + params to process one sound file per test + * python/tests/test_specdesc.py: RuntimeError is now raised on wrong mode + * python/tests/utils.py: by default, use 5 seconds brownoise + + [ Only in git ] + + * .travis.yml: add debian dpkg-buildflags config, switch from precise to + trusty, sudo required, add ffmpeg on osx, add targets ios, iosimulator, + and osx noopt configs, bump to xcode8, add xcode8.2 config, mimick + build_apple_frameworks options, alway upgrade pip, add pip --version and + which pip after upgrading, remove --user, use expandwaf in install, remove + unused ARCH, shuffle order, remove duplicate, add missing opening quote, + use AUBIO_NOTESTS to build only lib on ios, add gitter webhook + * .appveyor.yml: fix path for windows+python 3.5, fix typo in path, make + nose2 tests verbose + +2016-08-16 Paul Brossier [ Interface ] @@ -117,6 +625,7 @@ * python/scripts/aubiocut: fix usage string output [ Python tests ] + * python/tests/run_all_tests,*.py: switch to nose2, fix most prospect warnings * python/tests/test_fvec.py: add test_pass_to_numpy, cope with accumulated errors