source: ChangeLog @ 3a6a7766

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5
Last change on this file since 3a6a7766 was 1530ac3, checked in by Paul Brossier <piem@piem.org>, 7 years ago

ChangeLog?: update to 0.4.6

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