source: ChangeLog @ f91d4ac

feature/autosinkfeature/constantqfeature/pitchshiftfeature/pydocstringsfeature/timestretchsampleryinfft+
Last change on this file since f91d4ac was f91d4ac, checked in by Paul Brossier <piem@piem.org>, 3 years ago

ChangeLog?: update for 0.4.4

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