Changes¶
v0.4.2¶
- Bug fixes
- Support for matplotlib 1.5 color properties in the
displaymodule - #308 Fixed a per-octave scaling error in
librosa.cqt
- Support for matplotlib 1.5 color properties in the
- New features
- #279
librosa.cqtnow provides complex-valued output with argument real=False. This will become the default behavior in subsequent releases. - #288
core.resamplenow supports multi-channel inputs - #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)
- #279
- Other changes
v0.4.1¶
- 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_centeron numpy v1.10 - Fixed a context scoping error in
librosa.loadwith some audioread backends librosa.autocorrelatenow persists type for complex input
- New features
librosa.clickssonifies timed events such as beats or onsetslibrosa.onset.onset_strength_multicomputes onset strength within multiple sub-bandslibrosa.feature.tempogramcomputes localized onset strength autocorrelationlibrosa.display.specshownow supports*_axis='tempo'for annotating tempo-scaled datalibrosa.fmtimplements the Fast Mellin Transform
Other changes
- Rewrote
display.waveplotfor improved efficiencydecompose.deompose()now supports pre-trained transformation objects- Nullified side-effects of optional seaborn dependency
- Moved
feature.synctoutil.syncand expanded its functionalitylibrosa.onset.onset_strengthandonset_strength_multisupport superflux-style lag and max-filteringlibrosa.core.autocorrelatecan now operate along any axis of multi-dimensional input- the
segmentmodule functions now support arbitrary target axis- Added proper window normalization to
librosa.core.istftfor better reconstruction (PR #235).- Standardized
n_fft=2048forpiptrack,ifptrack(deprecated), andlogfsgram(deprecated)onset_strengthparameter'centering'has been deprecated and renamed to'center'onset_strengthalways trims to match the input spectrogram duration- added tests for
piptrack- added test support for Python 3.5
v0.4.0¶
Bug fixes
- Fixed alignment errors with
offsetanddurationinload() - 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 parsing - Added 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
cqtfilterbanks - Fixed 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=Noneoption toutil.normalize() segment.recurrence_to_lag,lag_to_recurrencecore.hybrid_cqt()andcore.pseudo_cqt()segment.timelag_filter- Efficiency enhancements for
cqt - Major rewrite and reformatting of documentation
- Improvements to
display.specshow:- added the
lagaxis format - added the
tonnetzaxis format - allow any combination of axis formats
- added the
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_crossingsutil.match_events()segment.subsegment()for segmentation refinement- Functional examples in almost all docstrings
- improved numerical stability in
normalize() - audio validation checks
to_mono()librosa.cachefor storing pre-computed features- Stereo output support in
write_wav - Added new feature extraction functions:
feature.spectral_contrastfeature.spectral_bandwidthfeature.spectral_centroidfeature.spectral_rollofffeature.poly_featuresfeature.rmsefeature.zero_crossing_ratefeature.tonnetz
- Added
display.waveplot
Other changes
- Internal refactoring and restructuring of submodules
- Removed the
chordmodule - 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_qnow returns filter lengths- Chroma now starts at
Cby default, instead ofA pad_centersupports multi-dimensional input andaxisparameter- switched from
np.ffttoscipy.fftpackfor FFT operations - changed all librosa-generated exception to a new class librosa.ParameterError
Deprecated functions
util.buf_to_intoutput.frames_csvsegment.structure_featurefilters.logfrequencyfeature.logfsgram
v0.3.1¶
Bug fixes
- Fixed bug #117:
librosa.segment.agglomerativenow returns a numpy.ndarray instead of a list - Fixed bug #115: off-by-one error in
librosa.core.loadwith fixed duration - Fixed numerical underflow errors in
librosa.decompose.hpss - Fixed bug #104:
librosa.decompose.hpssfailed with silent, complex-valued input - Fixed bug #103:
librosa.feature.estimate_tuningfails when no bins exceed the threshold
Features
- New function
librosa.core.get_duration()computes the duration of an audio signal or spectrogram-like input matrix librosa.util.pad_centernow 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¶
Bug fixes
- Fixed numpy array indices to force integer values
librosa.util.framenow warns if the input data is non-contiguous- Fixed a formatting error in
librosa.display.time_ticks() - Added a warning if
scikits.samplerateis not detected
Features
- New module
librosa.chordfor 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.FeatureExtractorclass, which allows librosa functions to act as feature extraction stages insklearn - New module
librosa.effectsfor time-domain audio processing - Added demo notebooks for the
librosa.effectsandlibrosa.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 values- Improved
librosa.feature.delta() - Additional padding options to
librosa.feature.stack_memory() librosa.cqtandlibrosa.feature.logfsgramnow use the same parameter formats(fmin, n_bins, bins_per_octave).- Updated demo notebook(s) to IPython 2.0
- Moved
perceptual_weighting()fromlibrosa.featureintolibrosa.core - Moved
stack_memory()fromlibrosa.segmentintolibrosa.feature - Standardized
librosa.output.annotationinput format to matchmir_eval - Standardized variable names (e.g.,
onset_envelope).
v0.2.1¶
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
centeringtolibrosa.onset.onset_strength()to resolve frame-centering issues with sliding window STFT - added 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.framefor in-place signal framing librosa.beat.beat_tracknow supports user-supplied tempo- added
librosa.util.normalize() - added
librosa.util.find_files() - added
librosa.util.axis_sort() - new module:
librosa.util() librosa.filters.constant_qnow support padding- added 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.melparametern_mels=128by default librosa.feature.chromagram()andlogfsgram()now use power instead of energylibrosa.display.specshow()withy_axis='chroma'now labels aspitch class- set
librosa.core.cqtparameterresolution=2by default - set
librosa.feature.chromagramparameteroctwidth=2by default
v0.2.0¶
Bug fixes
- fixed default
librosa.core.stft, istft, ifgramto match specification - fixed a float->int bug in peak_pick
- better memory efficiency
librosa.segment.recurrence_matrixcorrects for width suppression- fixed a divide-by-0 error in the beat tracker
- fixed a bug in tempo estimation with short windows
librosa.feature.syncnow supports 1d arrays- fixed a bug in beat trimming
- fixed a bug in
librosa.core.stftwhen calculating window size - fixed
librosa.core.resampleto support stereo signals
Features
- added filters option to cqt
- added window function support to istft
- added an IPython notebook demo
- added
librosa.features.deltafor computing temporal difference features - new
examplesscripts: tuning, hpss - added optional trimming to
librosa.segment.stack_memory librosa.onset.onset_strengthnow 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_strengthnow accepts an aggregator- added
librosa.feature.perceptual_weighting - added tuning estimation to
librosa.feature.chromagram - added
librosa.core.A_weighting - vectorized frequency converters
- added
librosa.core.cqt_frequenciesto get CQT frequencies librosa.core.cqtbasic constant-Q transform implementationlibrosa.filters.cq_to_chromato convert log-frequency to chroma- added
librosa.core.fft_frequencies librosa.decompose.hpsscan now return masking matrices- added 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.hpssnow supports complex-valued STFT matriceslibrosa.decompose.decompose()supportssklearndecomposition objects- added
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 matrix- new module:
librosa.segment
Other changes
onset_estimate_bpm => estimate_tempo- removed
n_fftfromlibrosa.core.istft() librosa.core.mel_frequenciesreturnsn_melsvalues by default- changed default
librosa.decompose.hpsswindow to 31 - disabled 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.ifgramnow matchesstft - changed default beat tracker settings
- migrated
hpssintolibrosa.decompose - changed default
librosa.decompose.hpsspower parameter to2.0 librosa.core.load()now returns single-precision by default- standardized
n_fft=2048,hop_length=512for most functions - refactored tempo estimator
v0.1.0¶
Initial public release.