Changelog

v2.1.0

Features

Integrate BeatsDROP in SAMPLE with decisors.
Plot beats as dashed lines in plots.
No zero-padding by default.
Nested collapsible HTML menu to inspect model arguments in IPython.
Officially supporting Python 3.11.

Fixes

Refactor encapsulation of models to be compliant with the sklearn API. This also affects argument names. These changes are non-breaking, since old names are still supported, although deprecated (a warning will be printed).
Adjust amplitude optimization boundaries based on initial values (ensure feasibility of starting point).
Limit numpy version to avoid issue #1138 in skopt.

Performance

Optionally fit BeatsDROP to trajectories in parallel (multiprocessing).
Use overlapping_windows to compute time-frames.
More robust margins in beat regression bounds.

GUI

Plot beats as dashed lines in GUI.
Add zero-padding toggle to GUI settings.
Thread lock for analysis. Major refactoring of GUI internals to accomodate multiprocessing BeatsDROP.

v2.0.0

Features

Psychoacoustic functions

Implementation of conversion functions between Hz and Bark, Mel, ERB, ERB-rate scale (Cams).
Helper functions for decibels.

Cochleagram computation as output of a gammatone filter-bank.
Generalized time-frequency representations plots.

Perceptual losses: Mel-spectrogram Loss, Multiscale Spectral Loss, Cochleagram Loss.

Linear algebra

Decorator for functions operating on numpy arrays for automating the allocation of the output array, to avoid multiple allocations.
Strided convolution utility for faster low-resolution convolution outputs.

Optimization

Hyperparameter optimization wrapper for Bayesian optimizaiton of SAMPLE parameters.

Beats

Random generator of beating modal partials. Modal beat model. DualBeat regression.

GUI

Add spacers between parameters sections.
Add “Export WAV” button.

Notebooks

Added “Automatic Tuning of SAMPLE hyperparameters” notebook.

v1.5.1

Fixes issues with Zenodo metadata

v1.5.0

GUI

This version introduces a gui intended for a non-developer audience. Also, a stand-alone executable is built for Windows on GitHub

Features

Introduced new parameter max_n_modes for limiting the number of modes used by the SAMPLE model for resynthesis

Fixes

Made default boundary computation more robust to degenerate inputs. Also an exception is raised for tracks of length one, advising to raise the minimum sine duration

v1.4.0

Features

Frequency reduction

A custom function can now be provided to reduce the array of frequency of each track into a single frequency. This is mainly intended to provide a way to switch between mean and median

Settable properties

Learned properties (frequencies, decays, amplitudes) can now be setted. This allows post-fit manipulations, e.g. pitch-shift

Improvements

Now forcing correct package version in notebooks. Also using quiet mode instead of clearing output

v1.3.0

Features

Merging strategy

Introduced an option to decide when to merge two different tracks. The “average” strategy considers the two average frequencies. The “single” strategy considers the last frequency of the first track and the first frequency of the second track

Track strip

Introduced an option to strip tracks that start after a given time

v1.2.3

Quality-of-code changes:

  • streamlined workflow

  • pushed coverage to 100%

  • added badges to README

v1.2.2

Removed most magics from notebooks to turn them crossplatform. Download is performed via a GET request using requests. The wav audio format is used for better support.

v1.2.1

Minor corrections to docs

v1.2.0

Features

Reverse mode

Added reverse mode: sinusoidal model will (optionally) process audio in reverse. This option was already implemented in the prototypal software for the paper, but missing from this package.

BugFixes

HingeRegression default linear_regressor

HingeRegression instances with default linear_regressor used to share the same linear_regressor instance. Now assignment is performed on a deepcopy of the parameter value (via property setter).

v1.1.0

First official release