# What changed in librosa

> 59 changes in librosa 1 from its official release notes, upgrade guides and advisories: 16 breaking, 4 deprecations, 24 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/pypi/librosa/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## librosa 1

### Breaking changes

- When ref is a function, the default operation is over trailing axes rather than the entire array, preserving channel independence; axes=None restores the 0.11 behavior. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- The audioread backend for loading audio files has been removed. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes filters.constant_q in favor of wavelet. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes filters.constant_q_lengths in favor of wavelet_lengths. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes get_fftlib. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- display.wavef0 was added; it was previously named melodyplot. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- The default quantization was removed, changing the function's default behavior. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Removes the filename argument in favor of path. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes the res_type argument. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- When ref is a function, the default operation is over trailing axes rather than the entire array, preserving channel independence; axes=None restores the 0.11 behavior. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes the win_length parameter. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- The minimum supported Python version is now 3.12. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Functions that previously returned scipy.sparse.spmatrix objects now return scipy.sparse.sparse_array objects. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes set_fftlib. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes the x_axis parameter in favor of axis. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Removes the win_length parameter. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)

### Deprecations

- Deprecates librosa.display.cmap in favor of librosa.display.infer_cmap. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Deprecates acceptance of hop_length and n_fft parameters; they will no longer be accepted in a future release. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Deprecates random_state parameters as PRNG interfaces migrate to rng. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Deprecates seed parameters as PRNG interfaces migrate to rng. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)

### New APIs and options

- Adds a helper for constructing colorbars with appropriate labeling for decibel-valued data. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a helper for constructing colorbars with appropriate labeling for angle-valued data. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a helper for applying path effects such as outlines or shadows to matplotlib artists so they are more visible over spectrogram displays. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Added the cmap_cyclic option to specshow. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Added the vscale option to specshow. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0), [upgrade guide](https://librosa.org/blog/posts/1.0/)
- An inverted waveshow display was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- The Metrogram Transform was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- A hybrid tempogram implementation was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0), [upgrade guide](https://librosa.org/blog/posts/1.0/)
- loadx was added, with a follow-up change to provide a more helpful failure mode. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Stream resampling was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Added an out parameter for in-place downmixing. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Dynamic vectorization was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Summarizes relative energy at different meters over time and can be used to estimate a recording's time signature. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a way to map an existing display routine over an array of matplotlib axes, sharing common parameters across subplots. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Additional oct3 display modes were added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0), [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Standardizes PRNG seeding on the rng= interface across the package. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Signal mixing helpers were added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Adds a flexible interface for mixing signals into different multidimensional array shapes. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a flexible interface for mixing signals into different multidimensional array shapes. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a flexible interface for mixing signals into different multidimensional array shapes. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Added conversion of a warping path to a step grid. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Wavebars were added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0), [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Adds a waveform display that accepts a signal and fundamental-frequency sequence and produces a frequency-displaced plot. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Waveform displays add an inverted mode that applies color styling to the background rather than the signal. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)

### Performance

- Import times are faster after eager compilation of certain numba-optimized subroutines was removed. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- By default, uses a sparsified transition matrix to skip low-likelihood transitions, substantially speeding up viterbi and related algorithms. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)

### Behavior and default changes

- The release is intended to stabilize the API from the long-running 0.x series. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- n_bins is inferred automatically in cqt and vqt. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Multichannel dB support was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Peak picking by dynamic programming was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Phase vocoding gained variable-rate and non-iterative capabilities. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Adds on-the-fly sample-rate conversion like load; conversion is not enabled by default in this release. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)
- Sample-rate conversion remains disabled by default for backward compatibility; the notes say the default will change in 1.1 and recommend making sr explicit. (1.0.0) — [upgrade guide](https://librosa.org/blog/posts/1.0/)

### Fixes and other changes

- Boolean data is supported by BoundedNorm for specshow. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Audio input is now validated in feature.rms. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Loading audio with a negative offset was addressed. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Underflow during perceptual weighting now produces a warning. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- Python 3.14 support was added. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
- RNG parameters were made SPEC07 compliant. (1.0.0) — [release notes](https://github.com/librosa/librosa/releases/tag/1.0.0)
