Changelog¶
v0.9¶
v0.9.1¶
2022-02-15
This release provides partial backward compatibility to the 0.8 series. The 0.9.0 release introduced restrictions on positional arguments to many functions, requiring parameters to be passed by keyword arguments instead. In 0.9.1, positional parameters now trigger warnings instead of errors, so 0.8-compatible code should work again.
Additional changes:
#1448 Documentation for
librosa.effects.trim
andlibrosa.effects.split
has been corrected to reflect a semantic change in the ref parameter introduced by #1130. Explicit ref values now measure amplitude rather than power.
v0.9.0¶
2022-02-07
The main feature of this release is (nearly) full support for arbitrary multi-channel processing, along with several speed and stability enhancements. A detailed list of changes is provided below.
- New Features
- API changes
#1114 Most functions now require keyword arguments. Brian McFee
#1382 The default padding mode for most functions (including STFT) is now zero-padding. Brian McFee
#1418
librosa.load
andlibrosa.stream
can now operate directly on opensoundfile
objects. Brian McFee#1414
librosa.display.specshow
now uses centered coordinate grids. Brian McFee#1398
librosa.iirt
now exposes API control over resampling modes. Brian McFee#1416 Removed deprecated functions librosa.display.waveplot and librosa.util.example_audio_file. Brian McFee
- Bug fixes
#1387 Fixed errors in support of odd frame lengths in various functions. Brian McFee
#1273 Minor corrections to constants in perceptual weighting functions. Brian McFee
#1350 Removed uses of deprecated numpy numerical types. Brian McFee
#1361 Maximum frequency is now correctly inferred as Nyquist in onset strength calculation. Brian McFee
#1362
librosa.effects.deemphasis
no longer modifies the input signal in-place. Brian McFee#1375
librosa.util.frame
now correctly works for arbitrary memory layouts and numbers of axes. Brian McFee#1425 Fixed an off-by-one error in
librosa.yin
andlibrosa.pyin
. @philstem, Brian McFee#1430 Removed unnecessary __all__ specifications to better support static analysis. Fabian Keller
#1407 Corrected a normalization error in inverse CQT. Brian McFee, Vincent Lostanlen
- Documentation
#1328 Retired the examples/ folder and expanded the Advanced Examples gallery. Brian McFee
#1427 Fixed docstring for
librosa.reassigned_spectrogram
. Fabian Keller
- Other changes
#418
librosa.cqt
now supports arbitrary hop lengths. Brian McFee#1405 Improvements and generalizations to constant-Q/variable-Q basis construction. Brian McFee, Vincent Lostanlen
#1324 Added a run-time check for minimally supported matplotlib versions. Brian McFee
#1325 Enhanced continuous integration testing for oldest and newest environments. Brian McFee
#1358 Harmonic interpolation now preemptively detects repeated values that produce unstable estimates. Brian McFee
#1432 Specify stack levels in warnings to provide more helpful warning messages. Brian McFee
#1384 Fixed package configuration error for documentation builds. Adam Weiss
- Deprecations
#1389 The mono parameter of
librosa.util.valid_audio
is deprecated and the default is now set to False. Brian McFee#1405 CQT filter-bank constructors
librosa.filters.constant_q
are now deprecated in favor oflibrosa.filters.wavelet
. Brian McFee, Vincent Lostanlen
v0.8¶
v0.8.1¶
2021-05-26
- New Features
#1293
librosa.effects.deemphasis
, inverse operation oflibrosa.effects.preemphasis
. Dan Mazur#1207
librosa.display.waveshow
, adaptively visualize waveforms by amplitude envelope when zoomed out, or raw sample values when zoomed in. Brian McFee#1338
librosa.resample
now optionally supports soxr. Myungchul Keum
- Bug fixes
#1290
librosa.display.specshow
fixed a bug in format and tick locations for CQT plots. Brian McFee#1240
librosa.display.specshow
now correctly infers fmax for mel frequency axes. Brian McFee, Bea Steers#1311
librosa.filters.chroma
fixed an error in how chromagrams were generated when n_chroma!=12 and base_c=True. Joon Lim#1322
librosa.feature.inverse.mel_to_audio
now infers hop_length by default in a way that is consistent with the rest of the package. Dan Ellis#1341
librosa.onset.onset_detect
no longer modifies user-provided onset envelopes. Brian McFee
- Documentation
#1211 fixed a broken link in the changelog. Pavel Campr
#1218 corrected an exception/warning message in
librosa.stft
when the frame length exceeds the input length. Frank Zalkow#1237 fixed spelling errors in
librosa.yin
andlibrosa.pyin
documentation. Tim Gates#1284 fixed broken links in CONTRIBUTING.md document. Abduttayyeb Mazhar
#1287 expanded instructions for installing ffmpeg on Windows. Cash TingHin Lo
#1298 fixed a dimension calculation error in
librosa.stream
documentation. Xinlu Zhuang#1321 fixed a mismatched parenthesis in
librosa.feature.mfcc
documentation. Connor Guerrero#1333 expanded documentation describing unsupported codecs in
librosa.load
. Brian McFee
- Other changes
#1312
librosa.display.specshow
can now automatically sets the aspect ratio of a plot if the axes are of the same type and shape. N. Dorukhan Sergin#1323, #1317_, #1308 simplified testing framework and migrated to GitHub Actions. Brian McFee
#1324
librosa.display.specshow
is now future-proofed for matplotlib 3.5. Brian McFee#1334
librosa.display.specshow
now supports HTK-style Mel scaling. Brian McFee#1335, #1336
librosa.display.specshow
now supports pitch notation (Western, Hindustani, and Carnatic) for STFT matrices. Paul Biberstein, Brian McFee#1333 minimum version of
soundfile
has been updated to 0.10.2. Brian McFee#1340 several functions now support np.integer-valued parameters as well as integer-valued parameters. Brian McFee
#1207
librosa.display
time-formatted axes now have enhanced precision at short time scales. Brian McFee#1341
librosa.onset.onset_detect
can now optionally disable normalization of the onset envelope. Brian McFee
- Deprecations to be removed in 0.9
librosa.display.waveplot is now deprecated in favor of
librosa.display.waveshow
.
v0.8.0¶
2020-07-22
- New Features
- #1203 Support for Carnatic and Hindustani notations. Brian McFee, Kaushik Sripathi Hatti, Kaustuv Kanti Ganguli
#1063
librosa.yin
andlibrosa.pyin
for fundamental frequency estimation. Benjamin van Niekirk#1018 Variable-Q transform
librosa.vqt
. Brian McFee, Frank Cwitkowitz#1059 libsamplerate support in
librosa.resample
. Brian McFee#1134 perceptual loudness weighting for B, C, D, and Z-weighting. Bea Steers
#1149 key support and note-spelling in pitch<=>note conversion. Brian McFee
#1150 new data loader, and expanded collection of example recordings. Brian McFee
#1166
librosa.sequence.dtw
can now return the step matrix. Frank Zaklow#1171 automatic precision inference for spectral transforms (stft, cqt) and explicit control for
librosa.cqt
. Brian McFee#1198
librosa.util.localmin
for computing local minima. Brian McFee
- Removed features and API changes
- #1062
Removed support for python < 3.6.
Removed the deprecated output module.
Removed deprecated ifgram function.
Removed deprecated amin parameter from icqt
Removed deprecated A440 parameter from hz_to_octs, octs_to_hz, and chroma features
Removed deprecated tuning= parameter in CQT filter constructors
Removed deprecated util.roll_sparse function
#1050 implemented changes to Mel filter normalization
#1165 removed deprecated optional_jit decorator
- Deprecations to be removed in 0.9
librosa.util.example_audio_file is now deprecated in favor of
librosa.util.example
.
- Bug fixes
#1078 fixed edge-padding errors in
librosa.feature.stack_memory
. beantowel#1091 fixed joblib version requirements. Thor Whalen
#1094 fixed STFT bug when using large window sizes. Frank Zalkow
#1157, #1196 fixed an alignment bug in
librosa.iirt
. Frank Zalkow#1159 fixed a warm-up glitch in
librosa.effects.preemphasis
. Brian McFee#1179 fixed memory initialization in unit tests. Brian McFee
- Documentation
#1068 Corrections to
librosa.effects.pitch_shift
documentation. Keunwoo Choi
- Other changes
#1064 unit test suite modernized to support latest pytest. Brian McFee
#1112 numba accelerated
librosa.feature.stack_memory
. Brian McFee#1120 added reference tuning for pitch conversion utilities. Julia Wilkins
#1123 fixed Python requirement definition in installation script. Stefan Sullivan
#1125 updates to
librosa.util.frame
to remove default parameters and relax contiguity restrictions. Brian McFee#1131 more stringent shape requirements on
librosa.util.valid_audio
. Brian McFee#1140 removed contiguity requirement for
librosa.util.valid_audio
. Brian McFee#1147 updates to
librosa.display.specshow
documentation. Brian McFee#1182
librosa.display.specshow
now returns a QuadMesh object, rather than the axes handle. Brian McFee#1183
librosa.feature.chroma_cqt
now uses higher CQT resolution by default. Brian McFee#1183
librosa.feature.tonnetz
can now pass-through arguments tolibrosa.feature.chroma_cqt
. Brian McFee#1186
librosa.display.cmap
now returns binary colormaps for boolean data. Brian McFee
v0.7¶
v0.7.2¶
2020-01-13
- New Features
#1008 added liftering support to MFCC inversion. Ayoub Malek
#1021 added
pathlib
support tolibrosa.load
. Stef van der Struijk#1022 added “mu-law” compression and expansion (companding). Brian McFee
- Bug fixes
#1031 fixed errors in dynamic time warping with NaN inputs and detection of invalid warping paths. Frank Zalkow, Brian McFee
#1041 fixed frame-length normalization in spectrogram-based RMS energy calculation. Shunsuke Hidaka
#1054 fixed the length of signals produced by
librosa.tone
. Brian McFee
- Documentation
- Other changes
#1050 expanded normalization modes in Mel basis construction. Brian McFee
v0.7.1¶
2019-10-09
- New Features
#966
librosa.util.frame
now supports multidimensional data. Includes a new helper functionlibrosa.util.stack
for contiguous concatenation. Brian McFee#934
librosa.griffinlim_cqt
: Phase retrieval from constant-Q magnitude spectra. Brian McFee#940 Enhanced compatibility with HTK’s MFCC implementation:
librosa.effects.preemphasis
and lifter= parameter in MFCC. Brian McFee#949
librosa.util.shear
utility for shear-transforming 2D arrays. Brian McFee#926
librosa.reassigned_spectrogram
: time-frequency reassigned spectrogram. Scott Seyfarth
- Bug fixes
#983 Added a missing parameter to
librosa.griffinlim_cqt
. Voodoohop#978 Correct FFT normalization discrepancy in rms calculation. Brian McFee
#930 Corrected an error in automatic tuning correction for CQT. Brian McFee
#942 Fixed seeking behavior in
librosa.stream
when operating on file-handle inputs. Carl Thome#920 Fixed a boundary condition check in full-sequence DTW. Frank Zalkow
- Documentation
#976 Fixed a typo in
librosa.stream
documentation. Alastair Porter#958 Visualization of reassigned spectrograms. Vincent Lostanlen
#943 Improved documentation for
librosa.stft
. Vincent Lostanlen#939 Expanded documentation of
librosa.feature.melspectrogram
. Vincent Lostanlen
- Other changes
#1004 Expose frame parameters in
librosa.onset
andlibrosa.feature.chroma_stft
functions. Brian McFee#1003 Removed warning filter reset, and changed the Python2 deprecation warning to class FutureWarning. Brian McFee, Fabian Keller
#1000 Fixed an upstream deprecation warning from np.asscalar(). Vincent Lostanlen
#971 Beat and tempo estimation now support prior distributions. Brian McFee
#968
librosa.util.valid_audio
now enforces memory contiguity. Vincent Lostanlen#963 Improved x-axis decoration types in librosa.display.waveplot. Vincent Lostanlen
#960 Ensure memory contiguity of audio buffers after resampling. Brian McFee
#957 Code-base audit for proper usage of
librosa.times_like
. Brian McFee#953 Deprecated librosa.ifgram in favor of
librosa.reassigned_spectrogram
. Brian McFee#950 Allow initial phase estimates for
librosa.griffinlim
methods. Brian McFee#949 Accelerated
librosa.segment.lag_to_recurrence
andlibrosa.segment.recurrence_to_lag
. Deprecated librosa.util.roll_sparse. Brian McFee#930 A440= parameter has been deprecated across the library in favor of a standardized tuning= parameter. Brian McFee
v0.7.0¶
2019-07-07
Note: the 0.7 series will be the last to officially support Python 2.7.
- New features
#772
librosa.stream
: Stream generator to process long audio files into smaller pieces. Brian McFee#845
librosa.load
: Replaced the default audio decoder with pysoundfile, and only useaudioread
as backup. Brian McFee#843
librosa.griffinlim
: Phase retrieval from magnitude spectrograms using the (accelerated) Griffin-Lim method. Brian McFee#843
librosa.feature.inverse
: New module for feature inversion, based on the Griffin-Lim phase retrieval algorithm. Includes mel_to_audio and mfcc_to_audio. Brian McFee#725
librosa.lpc
: Linear prediction coefficients (LPC). Adam Weiss#907
librosa.sequence.rqa
: Recurrence Quantification Analysis (RQA) for sequence alignment. Brian McFee#739
librosa.beat.plp
: Predominant local pulse (PLP) for variable-tempo beat tracking. Brian McFee#894
librosa.feature.fourier_tempogram
: Fourier Tempogram for representing rhythm in the frequency domain. Brian McFee#891
librosa.pcen
Per-channel energy normalization (PCEN) now allows logarithmic range compression at the limit power->0. Vincent Lostanlen#863
librosa.effects.pitch_shift
supports custom resampling modes. Taewoon Kim#857
librosa.cqt
andlibrosa.icqt
Forward and inverse constant-Q transform now support custom resampling modes. Brian McFee#842
librosa.segment.path_enhance
: Near-diagonal path enhancement for recurrence, self- or cross-similarity matrices. Brian McFee#840
librosa.segment.recurrence_matrix
now supports a keyword argument, self=False. If set to True, the recurrence matrix includes self-loops. Brian McFee#776
librosa.piptrack
now supports a keyword argument, ref=None, allowing users to override the reference thresholding behavior for determining which bins correspond to pitches. Brian McFee#770
librosa.segment.cross_similarity
: Cross-similarity function for comparing two feature sequences. Rachel Bittner, Brian McFee#709
librosa.onset.onset_strength_multi
now supports a user-specified reference spectrum via the ref keyword argument. Brian McFee#576
librosa.resample
now supports mode=’polyphase’. Brian McFee#519
librosa.onset.onset_strength_multi
: Setting aggregate=False disables the aggregation of onset strengths across frequency bins. Brian McFee
- Bug fixes
#900
librosa.effects.pitch_shift
now preserves length. Vincent Lostanlen#891
librosa.pcen
Dynamic range compression in PCEN is more numerically stable for small values of the exponent. Vincent Lostanlen#888 librosa.ifgram Instantaneous frequency spectrogram now correctly estimates center frequencies when using windows other than hann. Brian McFee
#869
librosa.sequence.dtw
Fixed a bug in dynamic time warping when subseq=True. Viktor Andreevitch Morozov#851
librosa.pcen
now initializes its autoregressive filtering in the steady state, not with silence. Jan Schlüter, Brian McFee#833
librosa.segment.recurrence_matrix
: width parameter now cannot exceed data length. Brian McFee#825 Filter bank constructors mel, chroma, constant_q, and cq_to_chroma are now type-stable. Vincent Lostanlen, Brian McFee
#802
librosa.icqt
Inverse constant-Q transform has been completely rewritten and is more numerically stable. Brian McFee
- Removed features (deprecated in v0.6)
Discrete cosine transform. We recommend using
scipy.fftpack.dct
The delta function no longer support the trim keyword argument.
Root mean square error (rmse) has been renamed to rms.
iirt now uses sos mode by default.
- Documentation
#891 Improved the documentation of PCEN. Vincent Lostanlen
#884 Improved installation documentation. Darío Hereñú
#882 Improved code style for plot generation. Alex Metsai
#874 Improved the documentation of spectral features. Brian McFee
#804 Improved the documentation of MFCC. Brian McFee
#849 Removed a redundant link in the util documentation. Keunwoo Choi
#827 Improved the docstring of recurrence_matrix. Brian McFee
#813 Improved the docstring of load. Andy Sarroff
- Other changes
#917 The output module is now deprecated, and will be removed in version 0.8.
#878 More informative exception handling. Jack Mason
#857 librosa.resample() now supports mode=’fft’, equivalent to the previous
scipy
mode. Brian McFee#854 More efficient length-aware ISTFT and ICQT. Vincent Lostanlen
#846 Nine librosa functions now store jit-compiled, numba-accelerated caches across sessions. Brian McFee
#841
librosa.load
no longer relies on realpath(). Brian McFee#834 All spectral feature extractors now expose all STFT parameters. Brian McFee
#829 Refactored
librosa.cache
. Brian McFee#818 Thanks to np.fft.rfft, functions stft, istft, ifgram, and fmt are faster and have a reduced memory footprint. Brian McFee
v0.6¶
v0.6.3¶
2019-02-13
- Bug fixes
#806 Fixed a bug in
librosa.estimate_tuning
. @robrib, Monsij Biswal, Brian McFee#799 Enhanced stability of elliptical filter implementation in iirt. Frank Zalkow
- New features
#766 made smoothing optional in
librosa.feature.chroma_cens
. Kyungyun Lee#760 allow explicit units for time axis decoration in
librosa.display
. Kyungyun Lee
- Other changes
#813 updated
librosa.load
documentation to cover bit depth truncation. Andy Sarroff#805 updated documentation for librosa.localmax. Brian McFee
#801 renamed librosa.feature.rmse to
librosa.feature.rms
. @nullmightybofo#793 updated comments in
librosa.stft
. Dan Ellis#791 updated documentation for write_wav. Brian McFee
#790 removed dependency on deprecated
imp
module. Brian McFee#787 fixed typos in CONTRIBUTING documentation. Vincent Lostanlen
#785 removed all run-time assertions in favor of proper exceptions. Brian McFee
#783 migrated test infrastructure from nose to pytest. Brian McFee
#777 include LICENSE file in source distribution. toddrme2178
#769 updated documentation in
librosa.istft
. Shayenne Moura
v0.6.2¶
2018-08-09
- Bug fixes
#730 Fixed cache support for joblib>=0.12. Matt Vollrath
- New features
#735 Added
librosa.times_like
andlibrosa.samples_like
to generate time and sample indices corresponding to an existing feature matrix or shape specification. Steve Tjoa#750, #753 Added
librosa.tone
andlibrosa.chirp
signal generators. Ziyao Wei
- Other changes
#727 updated documentation for
librosa.get_duration
. Zhen Wang#731 fixed a typo in documentation for
librosa.fft_frequencies
. Ziyao Wei#734 expanded documentation for librosa.feature.spectrall_rolloff. Ziyao Wei
#751 fixed example documentation for proper handling of phase in dB-scaling. Vincent Lostanlen
#755 forward support and future-proofing for fancy indexing with numpy>1.15. Brian McFee
v0.6.1¶
2018-05-24
- Bug fixes
#677
librosa.util.find_files
now correctly de-duplicates files on case-insensitive platforms. Brian McFee#713
librosa.util.valid_intervals
now checks for non-negative durations. Brian McFee, Dana Lee#714
librosa.util.match_intervals
can now explicitly fail when no matches are possible. Brian McFee, Dana Lee
- New features
#679, #708
librosa.pcen
, per-channel energy normalization. Vincent Lostanlen, Brian McFee#682 added different DCT modes to
librosa.feature.mfcc
. Brian McFee#687
librosa.display
functions now accept target axes. Pius Friesch#688 numba-accelerated
librosa.util.match_events
. Dana Lee#710
librosa.sequence
module and Viterbi decoding for generative, discriminative, and multi-label hidden Markov models. Brian McFee#714
librosa.util.match_intervals
now supports tie-breaking for disjoint query intervals. Brian McFee
- Other changes
#677, #705 added continuous integration testing for Windows. Brian McFee, Ryuichi Yamamoto
#680 updated display module tests to support matplotlib 2.1. Brian McFee
#684 corrected documentation for
librosa.stft
and librosa.ifgram. Keunwoo Choi#699, #701 corrected documentation for
librosa.filters.semitone_filterbank
andlibrosa.filters.mel_frequencies
. Vincent Lostanlen#704 eliminated unnecessary side-effects when importing
librosa.display
. Brian McFee#707 improved test coverage for dynamic time warping. Brian McFee
#714
librosa.util.match_intervals
matching logic has changed from raw intersection to Jaccard similarity. Brian McFee
- API Changes and compatibility
#716 librosa.dtw has moved to
librosa.sequence.dtw
, and librosa.fill_off_diagonal has moved tolibrosa.util.fill_off_diagonal
. Brian McFee
v0.6.0¶
2018-02-17
- Bug fixes
#663 fixed alignment errors in
librosa.feature.delta
. Brian McFee#646
librosa.effects.trim
now correctly handles all-zeros signals. Rimvydas Naktinis#634
librosa.stft
now conjugates the correct half of the spectrum. Brian McFee#630 fixed display decoration errors with cqt_note mode. Brian McFee
#619
librosa.effects.split
no longer returns out-of-bound sample indices. Brian McFee#616 Improved
librosa.util.valid_audio
to avoid integer type errors. Brian McFee#600 CQT basis functions are now correctly centered. Brian McFee
#597 fixed frequency bin centering in
librosa.display.specshow
. Brian McFee#594 librosa.dtw fixed a bug which ignored weights when step_sizes_sigma did not match length. Jackie Wu
#593
librosa.stft
properly checks for valid input signals. Erik Peterson#587
librosa.show_versions
now shows correct module names. Ryuichi Yamamoto
- New features
#648
librosa.feature.spectral_flatness
. Keunwoo Choi#633
librosa.feature.tempogram
now supports multi-band analysis. Brian McFee#439
librosa.iirt
implements the multi-rate filterbank from Chroma Toolbox. Stefan Balke#435
librosa.icqt
inverse constant-Q transform (unstable). Brian McFee
- Other changes
#674 Improved write_wav documentation with cross-references to
soundfile
. Brian McFee#671 Warn users when phase information is lost in dB conversion. Carl Thome
#666 Expanded documentation for
librosa.load
’s resampling behavior. Brian McFee#656 Future-proofing numpy data type checks. Carl Thome
#642 Updated unit tests for compatibility with matplotlib 2.1. Brian McFee
#637 Improved documentation for advanced I/O. Siddhartha Kumar
#636
librosa.util.normalize
now preserves data type. Brian McFee#632 refined the validation requirements for
librosa.util.frame
. Brian McFee#628 all time/frequency conversion functions preserve input shape. Brian McFee
#625 Numba is now a hard dependency. Brian McFee
#622
librosa.hz_to_midi
documentation corrections. Carl Thome#621 dtw is now symmetric with respect to input arguments. Stefan Balke
#620 Updated requirements to prevent installation with (incompatible) sklearn 0.19.0. Brian McFee
#609 Improved documentation for
librosa.segment.recurrence_matrix
. Julia Wilkins#598 Improved efficiency of
librosa.decompose.nn_filter
. Brian McFee#574 dtw now supports pre-computed distance matrices. Curtis Hawthorne
- API changes and compatibility
- #627 The following functions and features have been removed:
real= parameter in cqt
logamplitude (replaced by amplitude_to_db)
beat.estimate_tempo (replaced by beat.tempo)
n_fft= parameter to feature.rmse
ref_power= parameter to power_to_db
- The following features have been deprecated, and will be removed in 0.7.0:
trim= parameter to feature.delta
#616 write_wav no longer supports integer-typed waveforms. This is due to enforcing consistency with
librosa.util.valid_audio
checks elsewhere in the codebase. If you have existing code that requires integer-valued output, consider usingsoundfile.write
instead.
v0.5¶
v0.5.1¶
2017-05-08
- Bug fixes
#555 added safety check for frequency bands in
librosa.feature.spectral_contrast
. Brian McFee#554 fix interactive display for tonnetz visualization. Brian McFee
#553 fix bug in
librosa.feature.spectral_bandwidth
. Brian McFee#539 fix
librosa.feature.chroma_cens
to support scipy >=0.19. Brian McFee
- New features
#565
librosa.feature.stack_memory
now supports negative delay. Brian McFee#563 expose padding mode in stft/ifgram/cqt. Brian McFee
#559 explicit length option for
librosa.istft
. Brian McFee#557 added
librosa.show_versions
. Brian McFee#551 add norm= option to
librosa.filters.mel
. Dan Ellis
- Other changes
#569 librosa.feature.rmse now centers frames in the time-domain by default. Brian McFee
#564
librosa.display.specshow
now rasterizes images by default. Brian McFee#558 updated contributing documentation and issue templates. Brian McFee
#556 updated tutorial for 0.5 API compatibility. Brian McFee
#544 efficiency improvement in CQT. Carl Thome
#523 support reading files with more than two channels. Paul Brossier
v0.5.0¶
2017-02-17
- Bug fixes
#371 preserve integer hop lengths in constant-Q transforms. Brian McFee
#386 fixed a length check in
librosa.util.frame
. Brian McFee#416 librosa.output.write_wav only normalizes floating point, and normalization is disabled by default. Brian McFee
#417
librosa.cqt
output is now scaled continuously across octave boundaries. Brian McFee, Eric Humphrey#450 enhanced numerical stability for
librosa.util.softmask
. Brian McFee#467 correction to chroma documentation. Seth Kranzler
#501 fixed a numpy 1.12 compatibility error in
librosa.pitch_tuning
. Hojin Lee
- New features
#323 librosa.dtw dynamic time warping. Stefan Balke
#404
librosa.cache
now supports priority levels, analogous to logging levels. Brian McFee#405
librosa.interp_harmonics
for estimating harmonics of time-frequency representations. Brian McFee#410
librosa.beat.beat_track
andlibrosa.onset.onset_detect
can return output in frames, samples, or time units. Brian McFee#413 full support for scipy-style window specifications. Brian McFee
#427
librosa.salience
for computing spectrogram salience using harmonic peaks. Rachel Bittner#428
librosa.effects.trim
andlibrosa.effects.split
for trimming and splitting waveforms. Brian McFee#464
librosa.amplitude_to_db
, db_to_amplitude, power_to_db, and db_to_power for amplitude conversions. This deprecates logamplitude. Brian McFee#471
librosa.util.normalize
now supports threshold and fill_value arguments. Brian McFee#472
librosa.feature.melspectrogram
now supports power argument. Keunwoo Choi#473
librosa.onset.onset_backtrack
for backtracking onset events to previous local minima of energy. Brian McFee#479
librosa.beat.tempo
replaces librosa.beat.estimate_tempo, supports time-varying estimation. Brian McFee
- Other changes
#352 removed seaborn integration. Brian McFee
#368 rewrite of the
librosa.display
submodule. All plots are now in natural coordinates. Brian McFee#402
librosa.display
submodule is not automatically imported. Brian McFee#403
librosa.decompose.hpss
now returns soft masks. Brian McFee#407 librosa.feature.rmse can now compute directly in the time domain. Carl Thome
#432 librosa.feature.rmse renames n_fft to frame_length. Brian McFee
#446
librosa.cqt
now disables tuning estimation by default. Brian McFee#452
librosa.filters.__float_window
now always uses integer length windows. Brian McFee#459
librosa.load
now supports res_type argument for resampling. CJ Carr#482
librosa.filters.mel
now warns if parameters will generate empty filter channels. Brian McFee#480 expanded documentation for advanced IO use-cases. Fabian Robert-Stoeter
- API changes and compatibility
- The following functions have permanently moved:
core.peak_peak to util.peak_pick
core.localmax to util.localmax
feature.sync to util.sync
- The following functions, classes, and constants have been removed:
core.ifptrack
feature.chromagram
feature.logfsgram
filters.logfrequency
output.frames_csv
segment.structure_Feature
display.time_ticks
util.FeatureExtractor
util.buf_to_int
util.SMALL_FLOAT
- The following parameters have been removed:
librosa.cqt
: resolutionlibrosa.cqt
: aggregatefeature.chroma_cqt: mode
onset_strength: centering
- Seaborn integration has been removed, and the display submodule now requires matplotlib >= 1.5.
The use_sns argument has been removed from display.cmap
magma is now the default sequential colormap.
- The
librosa.display
module has been rewritten. librosa.display.specshow
now plots using pcolormesh, and supports non-uniform time and frequency axes.All plots can be rendered in natural coordinates (e.g., time or Hz)
Interactive plotting is now supported via ticker and formatter objects
- The
librosa.decompose.hpss
with mask=True now returns soft masks, rather than binary masks.librosa.filters.get_window
wrapsscipy.signal.get_window
, and handles generic callables as well pre-registered window functions. All windowed analyses (e.g., stft, cqt, or tempogram) now support the full range of window functions and parameteric windows via tuple parameters, e.g., window=(‘kaiser’, 4.0).stft windows are now explicitly asymmetric by default, which breaks backwards compatibility with the 0.4 series.
cqt now returns properly scaled outputs that are continuous across octave boundaries. This breaks backwards compatibility with the 0.4 series.
cqt now uses tuning=0.0 by default, rather than estimating the tuning from the signal. Tuning estimation is still supported, and enabled by default for chroma analysis (
librosa.feature.chroma_cqt
).logamplitude is deprecated in favor of amplitude_to_db or power_to_db. The ref_power parameter has been renamed to ref.
v0.4¶
v0.4.3¶
2016-05-17
- Bug fixes
#315 fixed a positioning error in
librosa.display.specshow
with logarithmic axes. Brian McFee#332
librosa.cqt
now throws an exception if the signal is too short for analysis. Brian McFee#341
librosa.hybrid_cqt
properly matches the scale oflibrosa.cqt
. Brian McFee#348
librosa.cqt
fixed a bug introduced in v0.4.2. Brian McFee#354 Fixed a minor off-by-one error in librosa.beat.estimate_tempo. Brian McFee
#357 improved numerical stability of
librosa.decompose.hpss
. Brian McFee
- New features
#312
librosa.segment.recurrence_matrix
can now construct sparse self-similarity matrices. Brian McFee#337
librosa.segment.recurrence_matrix
can now produce weighted affinities and distances. Brian McFee#311 librosa.decompose.nl_filter implements several self-similarity based filtering operations including non-local means. Brian McFee
#320
librosa.feature.chroma_cens
implements chroma energy normalized statistics (CENS) features. Stefan Balke#354
librosa.tempo_frequencies
computes tempo (BPM) frequencies for autocorrelation and tempogram features. Brian McFee#355
librosa.decompose.hpss
now supports harmonic-percussive-residual separation. CJ Carr, Brian McFee#357
librosa.util.softmask
computes numerically stable soft masks. Brian McFee
- Other changes
librosa.cqt
,librosa.hybrid_cqt
parameter aggregate is now deprecated.Resampling is now handled by the
resampy
librarylibrosa.get_duration
can now operate directly on filenames as well as audio buffers and feature matrices.librosa.decompose.hpss
no longer supports power=0.
v0.4.2¶
2016-02-20
- Bug fixes
Support for matplotlib 1.5 color properties in the
librosa.display
module#308 Fixed a per-octave scaling error in
librosa.cqt
. Brian McFee
- New features
#279
librosa.cqt
now provides complex-valued output with argument real=False. This will become the default behavior in subsequent releases.#288
librosa.resample
now supports multi-channel inputs. Brian McFee#295 librosa.display.frequency_ticks: like time_ticks. Ticks can now dynamically adapt to scale (mHz, Hz, KHz, MHz, GHz) and use automatic precision formatting (%g). Brian McFee
- Other changes
#277 improved documentation for OSX. Stefan Balke
#294 deprecated the FeatureExtractor object. Brian McFee
#300 added dependency version requirements to install script. Brian McFee
- #302, #279 renamed the following parameters
librosa.display.time_ticks: fmt is now time_fmt
librosa.feature.chroma_cqt
: mode is now cqt_modelibrosa.cqt
, hybrid_cqt, pseudo_cqt,librosa.filters.constant_q
: resolution is now filter_scale
#308
librosa.cqt
default filter_scale parameter is now 1 instead of 2.
v0.4.1¶
2015-10-17
- Bug fixes
Improved safety check in CQT for invalid hop lengths
Fixed division by zero bug in librosa.pitch.pip_track
Fixed integer-type error in
librosa.util.pad_center
on numpy v1.10Fixed a context scoping error in
librosa.load
with some audioread backendslibrosa.autocorrelate
now persists type for complex input
- New features
librosa.clicks
sonifies timed events such as beats or onsetslibrosa.onset.onset_strength_multi
computes onset strength within multiple sub-bandslibrosa.feature.tempogram
computes localized onset strength autocorrelationlibrosa.display.specshow
now supports *_axis=’tempo’ for annotating tempo-scaled datalibrosa.fmt
implements the Fast Mellin Transform
- Other changes
Rewrote librosa.display.waveplot for improved efficiency
librosa.decompose.deompose() now supports pre-trained transformation objects
Nullified side-effects of optional seaborn dependency
Moved feature.sync to
librosa.util.sync
and expanded its functionalitylibrosa.onset.onset_strength
and onset_strength_multi support superflux-style lag and max-filteringlibrosa.autocorrelate
can now operate along any axis of multi-dimensional inputthe
librosa.segment
module functions now support arbitrary target axisAdded proper window normalization to
librosa.istft
for better reconstruction (PR #235).Standardized n_fft=2048 for piptrack, ifptrack (deprecated), and logfsgram (deprecated)
onset_strength parameter ‘centering’ has been deprecated and renamed to ‘center’
onset_strength always trims to match the input spectrogram duration
added tests for piptrack
added test support for Python 3.5
v0.4.0¶
2015-07-08
- Bug fixes
Fixed alignment errors with offset and duration in load()
Fixed an edge-padding issue with decompose.hpss() which resulted in percussive noise leaking into the harmonic component.
Fixed stability issues with ifgram(), added options to suppress negative frequencies.
Fixed scaling and padding errors in feature.delta()
Fixed some errors in librosa.note_to_hz() string parsing
Added robust range detection for
librosa.display.cmap
Fixed tick placement in
librosa.display.specshow
Fixed a low-frequency filter alignment error in
librosa.cqt
Added aliasing checks for
librosa.cqt
filterbanksFixed corner cases in peak_pick
Fixed bugs in find_files() with negative slicing
Fixed tuning estimation errors
Fixed octave numbering in to conform to scientific pitch notation
- New features
python 3 compatibility
Deprecation and moved-function warnings
added norm=None option to util.normalize()
segment.recurrence_to_lag, lag_to_recurrence
core.hybrid_cqt() and core.pseudo_cqt()
segment.timelag_filter
Efficiency enhancements for cqt
Major rewrite and reformatting of documentation
Improvements to display.specshow: - added the lag axis format - added the tonnetz axis format - allow any combination of axis formats
effects.remix()
Added new time and frequency converters: - note_to_hz(), hz_to_note() - frames_to_samples(), samples_to_frames() - time_to_samples(), samples_to_time()
core.zero_crossings
util.match_events()
segment.subsegment() for segmentation refinement
Functional examples in almost all docstrings
improved numerical stability in normalize()
audio validation checks
to_mono()
librosa.cache
for storing pre-computed featuresStereo output support in write_wav
Added new feature extraction functions: - feature.spectral_contrast - feature.spectral_bandwidth - feature.spectral_centroid - feature.spectral_rolloff - feature.poly_features - feature.rmse - feature.zero_crossing_rate - feature.tonnetz
Added display.waveplot
- Other changes
Internal refactoring and restructuring of submodules
Removed the chord module
input validation and better exception reporting for most functions
Changed the default colormaps in display
Changed default parameters in onset detection, beat tracking
Changed default parameters in cqt
filters.constant_q now returns filter lengths
Chroma now starts at C by default, instead of A
pad_center supports multi-dimensional input and axis parameter
switched from np.fft to
scipy.fftpack
for FFT operationschanged all librosa-generated exception to a new class librosa.ParameterError
- Deprecated functions
util.buf_to_int
output.frames_csv
segment.structure_feature
filters.logfrequency
feature.logfsgram
v0.3¶
v0.3.1¶
2015-02-18
- Bug fixes
Fixed bug #117:
librosa.segment.agglomerative
now returns a numpy.ndarray instead of a listFixed bug #115: off-by-one error in
librosa.load
with fixed durationFixed numerical underflow errors in
librosa.decompose.hpss
Fixed bug #104:
librosa.decompose.hpss
failed with silent, complex-valued inputFixed bug #103: librosa.feature.estimate_tuning fails when no bins exceed the threshold
- Features
New function librosa.get_duration() computes the duration of an audio signal or spectrogram-like input matrix
librosa.util.pad_center
now accepts multi-dimensional input
- Other changes
Adopted the ISC license
Python 3 compatibility via futurize
Fixed issue #102: segment.agglomerative no longer depends on the deprecated Ward module of sklearn; it now depends on the newer Agglomerative module.
Issue #108: set character encoding on all source files
Added dtype persistence for resample, stft, istft, and effects functions
v0.3.0¶
2014-06-30
- Bug fixes
Fixed numpy array indices to force integer values
librosa.util.frame
now warns if the input data is non-contiguousFixed a formatting error in librosa.display.time_ticks()
Added a warning if scikits.samplerate is not detected
- Features
New module librosa.chord for training chord recognition models
Parabolic interpolation piptracking librosa.feature.piptrack()
librosa.localmax() now supports multi-dimensional slicing
New example scripts
Improved documentation
Added the librosa.util.FeatureExtractor class, which allows librosa functions to act as feature extraction stages in
sklearn
New module
librosa.effects
for time-domain audio processingAdded demo notebooks for the
librosa.effects
and librosa.util.FeatureExtractorAdded a full-track audio example, librosa.util.example_audio_file()
Added peak-frequency sorting of basis elements in librosa.decompose.decompose()
- Other changes
Spectrogram frames are now centered, rather than left-aligned. This removes the need for window correction in librosa.frames_to_time()
Accelerated constant-Q transform librosa.cqt()
PEP8 compliance
Removed normalization from librosa.feature.logfsgram()
Efficiency improvements by ensuring memory contiguity
librosa.logamplitude() now supports functional reference power, in addition to scalar values
Improved librosa.feature.delta()
Additional padding options to librosa.feature.stack_memory()
librosa.cqt
and librosa.feature.logfsgram now use the same parameter formats (fmin, n_bins, bins_per_octave).Updated demo notebook(s) to IPython 2.0
Moved perceptual_weighting() from
librosa.feature
intolibrosa
Moved stack_memory() from
librosa.segment
intolibrosa.feature
Standardized librosa.output.annotation input format to match
mir_eval
Standardized variable names (e.g., onset_envelope).
v0.2¶
v0.2.1¶
2014-01-21
- Bug fixes
fixed an off-by-one error in librosa.onset.onset_strength()
fixed a sign-flip error in librosa.output.write_wav()
removed all mutable object default parameters
- Features
added option centering to librosa.onset.onset_strength() to resolve frame-centering issues with sliding window STFT
added frame-center correction to librosa.frames_to_time() and librosa.time_to_frames()
added librosa.util.pad_center()
added librosa.output.annotation()
added librosa.output.times_csv()
accelerated librosa.stft() and ifgram()
added
librosa.util.frame
for in-place signal framinglibrosa.beat.beat_track
now supports user-supplied tempoadded librosa.util.normalize()
added librosa.util.find_files()
added librosa.util.axis_sort()
new module: librosa.util()
librosa.filters.constant_q
now support paddingadded boolean input support for librosa.display.cmap()
speedup in librosa.cqt()
- Other changes
optimized default parameters for
librosa.onset.onset_detect
set
librosa.filters.mel
parameter n_mels=128 by defaultlibrosa.feature.chromagram() and logfsgram() now use power instead of energy
librosa.display.specshow() with y_axis=’chroma’ now labels as pitch class
set
librosa.cqt
parameter resolution=2 by defaultset librosa.feature.chromagram parameter octwidth=2 by default
v0.2.0¶
2013-12-14
- Bug fixes
fixed default librosa.stft, istft, ifgram to match specification
fixed a float->int bug in peak_pick
better memory efficiency
librosa.segment.recurrence_matrix
corrects for width suppressionfixed a divide-by-0 error in the beat tracker
fixed a bug in tempo estimation with short windows
librosa.feature.sync now supports 1d arrays
fixed a bug in beat trimming
fixed a bug in
librosa.stft
when calculating window sizefixed
librosa.resample
to support stereo signals
- Features
added filters option to cqt
added window function support to istft
added an IPython notebook demo
added librosa.features.delta for computing temporal difference features
new examples scripts: tuning, hpss
added optional trimming to librosa.segment.stack_memory
librosa.onset.onset_strength
now takes generic spectrogram function featurecompute reference power directly in librosa.logamplitude
color-blind-friendly default color maps in
librosa.display.cmap
librosa.onset_strength now accepts an aggregator
added librosa.feature.perceptual_weighting
added tuning estimation to librosa.feature.chromagram
added
librosa.A_weighting
vectorized frequency converters
added
librosa.cqt_frequencies
to get CQT frequencieslibrosa.cqt
basic constant-Q transform implementationlibrosa.filters.cq_to_chroma
to convert log-frequency to chromaadded
librosa.fft_frequencies
librosa.decompose.hpss
can now return masking matricesadded reversal for librosa.segment.structure_feature
added
librosa.time_to_frames
added cent notation to
librosa.midi_to_note
added time-series or spectrogram input options to chromagram, logfsgram, melspectrogram, and mfcc
new module:
librosa.display
librosa.output.segment_csv => librosa.output.frames_csv
migrated frequency converters to
librosa
new module:
librosa.filters
librosa.decompose.hpss
now supports complex-valued STFT matriceslibrosa.decompose.decompose() supports
sklearn
decomposition objectsadded
librosa.phase_vocoder
new module:
librosa.onset
; migrated onset strength fromlibrosa.beat
added librosa.pick_peaks
librosa.load() supports offset and duration parameters
librosa.magphase() to separate magnitude and phase from a complex matrix
new module:
librosa.segment
- Other changes
onset_estimate_bpm => estimate_tempo
removed n_fft from librosa.istft()
librosa.mel_frequencies
returns n_mels values by defaultchanged default
librosa.decompose.hpss
window to 31disabled onset de-trending by default in
librosa.onset.onset_strength
added complex-value warning to
librosa.display.specshow
broke compatibility with ifgram.m; librosa.ifgram now matches stft
changed default beat tracker settings
migrated hpss into
librosa.decompose
changed default
librosa.decompose.hpss
power parameter to 2.0librosa.load() now returns single-precision by default
standardized n_fft=2048, hop_length=512 for most functions
refactored tempo estimator
v0.1¶
Initial public release.