Caution
You're reading an old version of this documentation. If you want up-to-date information, please have a look at 0.9.1.
Changelog¶
v0.7.2¶
2020-01-13
- New Features
- Bug fixes
- Documentation
- Other changes
#1050 expanded normalization modes in Mel basis construction. Brian McFee
v0.7.1¶
2019-10-09
- New Features
#966 util.frame now supports multidimensional data. Includes a new helper function util.stack for contiguous concatenation. Brian McFee
#934 core.griffinlim_cqt: Phase retrieval from constant-Q magnitude spectra. Brian McFee
#940 Enhanced compatibility with HTK’s MFCC implementation: effects.preemphasis and lifter= parameter in MFCC. Brian McFee
#949 util.shear utility for shear-transforming 2D arrays. Brian McFee
#926 core.reassigned_spectrogram: time-frequency reassigned spectrogram. Scott Seyfarth
- Bug fixes
#983 Added a missing parameter to 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
- Other changes
#1004 Expose frame parameters in onset and 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 util.valid_audio now enforces memory contiguity. Vincent Lostanlen
#963 Improved x-axis decoration types in display.waveplot. Vincent Lostanlen
#960 Ensure memory contiguity of audio buffers after resampling. Brian McFee
#957 Code-base audit for proper usage of times_like. Brian McFee
#953 Deprecated core.ifgram in favor of reassigned_spectrogram. Brian McFee
#950 Allow initial phase estimates for griffinlim methods. Brian McFee
#949 Accelerated segment.lag_to_recurrence and segment.recurrence_to_lag. Deprecated 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.core.stream
: Stream generator to process long audio files into smaller pieces. Brian McFee#845
librosa.core.load
: Replaced the default audio decoder with pysoundfile, and only useaudioread
as backup. Brian McFee#843
librosa.core.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.core.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.core.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.core.cqt
andlibrosa.core.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.core.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.core.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.core.pcen
Dynamic range compression in PCEN is more numerically stable for small values of the exponent. Vincent Lostanlen#888
librosa.core.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.core.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.core.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.core.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.core.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.3¶
2019-02-13
- Bug fixes
- New features
- Other changes
#813 updated core.load documentation to cover bit depth truncation. Andy Sarroff
#805 updated documentation for core.localmax. Brian McFee
#801 renamed feature.rmse to feature.rms. @nullmightybofo
#793 updated comments in 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 core.istft. Shayenne Moura
v0.6.2¶
2018-08-09
- Bug fixes
#730 Fixed cache support for
joblib>=0.12
. Matt Vollrath
- New features
- Other changes
#727 updated documentation for core.get_duration. Zhen Wang
#731 fixed a typo in documentation for core.fft_frequencies. Ziyao Wei
#734 expanded documentation for 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
- New features
#679, #708 core.pcen, per-channel energy normalization. Vincent Lostanlen, Brian McFee
#682 added different DCT modes to feature.mfcc. Brian McFee
#687 display functions now accept target axes. Pius Friesch
#688 numba-accelerated util.match_events. Dana Lee
#710 sequence module and Viterbi decoding for generative, discriminative, and multi-label hidden Markov models. Brian McFee
#714 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 core.stft and core.ifgram. Keunwoo Choi
#699, #701 corrected documentation for filters.semitone_filterbank and filters.mel_frequencies. Vincent Lostanlen
#704 eliminated unnecessary side-effects when importing display. Brian McFee
#707 improved test coverage for dynamic time warping. Brian McFee
#714 util.match_intervals matching logic has changed from raw intersection to Jaccard similarity. Brian McFee
- API Changes and compatibility
#716 core.dtw has moved to sequence.dtw, and core.fill_off_diagonal has moved to util.fill_off_diagonal. Brian McFee
v0.6.0¶
2018-02-17
- Bug fixes
#663 fixed alignment errors in feature.delta. Brian McFee
#646 effects.trim now correctly handles all-zeros signals. Rimvydas Naktinis
#634 stft now conjugates the correct half of the spectrum. Brian McFee
#630 fixed display decoration errors with cqt_note mode. Brian McFee
#619 effects.split no longer returns out-of-bound sample indices. Brian McFee
#616 Improved 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 display.specshow. Brian McFee
#594 dtw fixed a bug which ignored weights when step_sizes_sigma did not match length. Jackie Wu
#593 stft properly checks for valid input signals. Erik Peterson
#587 show_versions now shows correct module names. Ryuichi Yamamoto
- New features
- 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 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 util.normalize now preserves data type. Brian McFee
#632 refined the validation requirements for 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 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 segment.recurrence_matrix. Julia Wilkins
#598 Improved efficiency of 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
core.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 util.valid_audio checks elsewhere in the codebase. If you have existing code that requires integer-valued output, consider using
soundfile.write
instead.
v0.5.1¶
2017-05-08
- Bug fixes
- New features
- Other changes
#569 feature.rmse now centers frames in the time-domain by default. Brian McFee
#564 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
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
, anddb_to_power
for amplitude conversions. This deprecateslogamplitude
. Brian McFee#471
librosa.util.normalize
now supportsthreshold
andfill_value
arguments. Brian McFee#472
librosa.feature.melspectrogram
now supportspower
argument. Keunwoo Choi#473
librosa.onset.onset_backtrack
for backtracking onset events to previous local minima of energy. Brian McFee#479
librosa.beat.tempo
replaceslibrosa.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
renamesn_fft
toframe_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 supportsres_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
toutil.peak_pick
core.localmax
toutil.localmax
feature.sync
toutil.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
: modeonset_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.
- Seaborn integration has been removed, and the
- 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
, ortempogram
) 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 ofamplitude_to_db
orpower_to_db
. The ref_power parameter has been renamed to ref.
v0.4.3¶
2016-05-17
- Bug fixes
#315 fixed a positioning error in
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.core.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 supportspower=0
.
v0.4.2¶
2016-02-20
- Bug fixes
Support for matplotlib 1.5 color properties in the
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
core.resample
now supports multi-channel inputs. Brian McFee#295
librosa.display.frequency_ticks
: liketime_ticks
. Ticks can now dynamically adapt to scale (mHz, Hz, KHz, MHz, GHz) and use automatic precision formatting (%g
). Brian McFee
- Other changes
v0.4.1¶
2015-10-17
- Bug fixes
Improved safety check in CQT for invalid hop lengths
Fixed division by zero bug in
core.pitch.pip_track
Fixed integer-type error in
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
display.waveplot
for improved efficiencydecompose.deompose()
now supports pre-trained transformation objectsNullified side-effects of optional seaborn dependency
Moved
feature.sync
toutil.sync
and expanded its functionalitylibrosa.onset.onset_strength
andonset_strength_multi
support superflux-style lag and max-filteringlibrosa.core.autocorrelate
can now operate along any axis of multi-dimensional inputthe
segment
module functions now support arbitrary target axisAdded proper window normalization to
librosa.core.istft
for better reconstruction (PR #235).Standardized
n_fft=2048
forpiptrack
,ifptrack
(deprecated), andlogfsgram
(deprecated)onset_strength
parameter'centering'
has been deprecated and renamed to'center'
onset_strength
always trims to match the input spectrogram durationadded tests for
piptrack
added test support for Python 3.5
v0.4.0¶
2015-07-08
- Bug fixes
Fixed alignment errors with
offset
andduration
inload()
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
note_to_hz()
string parsingAdded robust range detection for
display.cmap
Fixed tick placement in
display.specshow
Fixed a low-frequency filter alignment error in
cqt
Added aliasing checks for
cqt
filterbanksFixed corner cases in
peak_pick
Fixed bugs in
find_files()
with negative slicingFixed 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 toutil.normalize()
segment.recurrence_to_lag
,lag_to_recurrence
core.hybrid_cqt()
andcore.pseudo_cqt()
segment.timelag_filter
Efficiency enhancements for
cqt
Major rewrite and reformatting of documentation
Improvements to
display.specshow
: - added thelag
axis format - added thetonnetz
axis format - allow any combination of axis formatseffects.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 refinementFunctional 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
moduleinput 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 lengthsChroma now starts at
C
by default, instead ofA
pad_center
supports multi-dimensional input andaxis
parameterswitched from
np.fft
toscipy.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.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.core.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.core.get_duration()
computes the duration of an audio signal or spectrogram-like input matrixlibrosa.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 modelsParabolic interpolation piptracking
librosa.feature.piptrack()
librosa.localmax()
now supports multi-dimensional slicingNew example scripts
Improved documentation
Added the
librosa.util.FeatureExtractor
class, which allows librosa functions to act as feature extraction stages insklearn
New module
librosa.effects
for time-domain audio processingAdded demo notebooks for the
librosa.effects
andlibrosa.util.FeatureExtractor
Added 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 valuesImproved
librosa.feature.delta()
Additional padding options to
librosa.feature.stack_memory()
librosa.cqt
andlibrosa.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()
fromlibrosa.feature
intolibrosa.core
Moved
stack_memory()
fromlibrosa.segment
intolibrosa.feature
Standardized
librosa.output.annotation
input format to matchmir_eval
Standardized variable names (e.g.,
onset_envelope
).
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
tolibrosa.onset.onset_strength()
to resolve frame-centering issues with sliding window STFTadded frame-center correction to
librosa.core.frames_to_time()
andlibrosa.core.time_to_frames()
added
librosa.util.pad_center()
added
librosa.output.annotation()
added
librosa.output.times_csv()
accelerated
librosa.core.stft()
andifgram()
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.core.cqt()
- Other changes
optimized default parameters for
librosa.onset.onset_detect
set
librosa.filters.mel
parametern_mels=128
by defaultlibrosa.feature.chromagram()
andlogfsgram()
now use power instead of energylibrosa.display.specshow()
withy_axis='chroma'
now labels aspitch class
set
librosa.core.cqt
parameterresolution=2
by defaultset
librosa.feature.chromagram
parameteroctwidth=2
by default
v0.2.0¶
2013-12-14
- Bug fixes
fixed default
librosa.core.stft, istft, ifgram
to match specificationfixed 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 arraysfixed a bug in beat trimming
fixed a bug in
librosa.core.stft
when calculating window sizefixed
librosa.core.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 featuresnew
examples
scripts: tuning, hpssadded optional trimming to
librosa.segment.stack_memory
librosa.onset.onset_strength
now takes generic spectrogram functionfeature
compute reference power directly in
librosa.core.logamplitude
color-blind-friendly default color maps in
librosa.display.cmap
librosa.core.onset_strength
now accepts an aggregatoradded
librosa.feature.perceptual_weighting
added tuning estimation to
librosa.feature.chromagram
added
librosa.core.A_weighting
vectorized frequency converters
added
librosa.core.cqt_frequencies
to get CQT frequencieslibrosa.core.cqt
basic constant-Q transform implementationlibrosa.filters.cq_to_chroma
to convert log-frequency to chromaadded
librosa.core.fft_frequencies
librosa.decompose.hpss
can now return masking matricesadded reversal for
librosa.segment.structure_feature
added
librosa.core.time_to_frames
added cent notation to
librosa.core.midi_to_note
added time-series or spectrogram input options to
chromagram
,logfsgram
,melspectrogram
, andmfcc
new module:
librosa.display
librosa.output.segment_csv
=>librosa.output.frames_csv
migrated frequency converters to
librosa.core
new module:
librosa.filters
librosa.decompose.hpss
now supports complex-valued STFT matriceslibrosa.decompose.decompose()
supportssklearn
decomposition objectsadded
librosa.core.phase_vocoder
new module:
librosa.onset
; migrated onset strength fromlibrosa.beat
added
librosa.core.pick_peaks
librosa.core.load()
supports offset and duration parameterslibrosa.core.magphase()
to separate magnitude and phase from a complex matrixnew module:
librosa.segment
- Other changes
onset_estimate_bpm => estimate_tempo
removed
n_fft
fromlibrosa.core.istft()
librosa.core.mel_frequencies
returnsn_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 compatibilty with
ifgram.m
;librosa.core.ifgram
now matchesstft
changed default beat tracker settings
migrated
hpss
intolibrosa.decompose
changed default
librosa.decompose.hpss
power parameter to2.0
librosa.core.load()
now returns single-precision by defaultstandardized
n_fft=2048
,hop_length=512
for most functionsrefactored tempo estimator
v0.1.0¶
Initial public release.