aubio
a collection of tools for music analysis
What it is and what it does
aubio is a Python interface to a C-based audio analysis library that extracts musically meaningful features from audio files and streams. It integrates with NumPy and can read from nearly any media format via optional backends like ffmpeg or libsndfile. The library provides onset detection (attack identification), pitch tracking (fundamental frequency estimation), beat and tempo detection, and spectral analysis including Mel-Frequency Cepstrum Coefficients and standard descriptors. It also includes a phase vocoder for time-stretching and can write analysis results to MIDI.
The package is designed for both offline batch analysis and real-time processing, with demos showing integration with audio I/O libraries. However, it has been abandoned since February 2019 with no active maintenance, meaning build issues, compatibility problems with recent Python versions, and unresolved bugs are unlikely to be fixed.
Use it for:
- Extract onset times and note attacks from audio recordings for music information retrieval or drum transcription.
- Estimate fundamental frequency and pitch contours from monophonic or polyphonic audio for melody extraction.
- Detect beat positions and estimate tempo from music files for synchronization or analysis.
- Compute Mel-Frequency Cepstrum Coefficients and spectral descriptors for machine learning feature sets.
- Time-stretch audio without changing pitch, or convert detected notes to MIDI files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
aubio is a Python wrapper around a C library for music and audio analysis, providing tools to detect onsets, track pitch, identify beats, and extract spectral features from audio files and streams.
No, unless you have a specific legacy integration or research requirement. The package is abandoned (last release February 2019), and high installation friction combined with copyleft licensing and no active maintenance makes it risky for new projects. Modern alternatives with active maintenance are available for audio analysis tasks.
Install
aubio on PyPI
pip
pip install aubiouv
uv add aubiopoetry
poetry add aubioInstalling aubio
Before you install
Installation requires compilation of C extensions, which can be friction-heavy depending on your build environment and available system libraries. The package has been abandoned since 2019 with no recent maintenance, so unresolved build issues or compatibility problems with modern Python versions may not be addressed.
License in practice
aubio is licensed under GNU GPL v3 or later (copyleft). Any software that links to or distributes aubio must also be released under a compatible copyleft license; proprietary or closed-source projects cannot use it without legal risk.
Quickstart
pip install aubio
import aubio
source = aubio.source('audio.wav')
frames, read = source()
print(f'Read {read} samples')
Requires C compiler and development headers for aubio's C extensions. Optional but recommended: ffmpeg, libsndfile, or CoreAudio for audio file reading; NumPy is integrated but not listed as an explicit runtime dependency.
Verify before relying
- Whether the package builds successfully on Python 3.10+ given its abandoned status since 2019.
- Current state of optional dependencies (ffmpeg, libsndfile, fftw3, etc.) and whether they are auto-detected or require manual configuration.
- Whether real-time audio processing (pyaudio, PySoundCard integration) is production-ready or demo-only.
Package facts
| License | GNU/GPL version 3 (copyleft) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,744 days since the last release |
| First released | |
| Downloads | 213,348/month — #9,440 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aubio-0.4.9.tar.gz
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
GammatoneApplies banks of gammatone filters to audio…
unclear · top 15,000 on PyPI
pyacoustidProvides Python bindings for Chromaprint…
permissive · top 15,000 on PyPI
basic-pitchBasic Pitch converts audio files to MIDI…
unclear · top 15,000 on PyPI
torchfcpeTorchFCPE estimates fundamental frequency…
permissive · top 15,000 on PyPI
pyrubberbandProvides Python wrappers for time-stretching…
permissive · top 15,000 on PyPI
music21music21 is a Python toolkit for analyzing,…
permissive · top 15,000 on PyPI
python_speech_featuresExtracts speech features from audio signals for…
permissive · top 15,000 on PyPI
librosalibrosa provides audio and music signal…
permissive · top 5,000 on PyPI
symusicsymusic parses and transforms MIDI and ABC…
permissive · top 15,000 on PyPI
midoMido provides a Python library for creating,…
permissive · top 5,000 on PyPI