aubio
C library with Python bindings for onset, pitch, beat and tempo detection.
| Language | Python |
|---|---|
| Category | Audio analysis |
| License | GPL-3.0-or-later |
| Platforms | macOS Windows Linux iOS |
| Install | pip install aubio |
| First released | ~2006 |
| Maintained | Yes |
| Links | Website · Source |
Strengths
- Fast C core for real-time onset/pitch/tempo detection
- Also usable as CLI tools and from other languages
- Source repo still active in 2026
Limitations
- Last PyPI release (0.4.9) is from 2019; wheels lag
- GPL restricts use in closed-source products
Best for
Lightweight real-time note-onset, pitch, and tempo detection.
Minimal example
import aubio
s = aubio.source('audio.wav')
pitch = aubio.pitch('yin', 2048, 512, s.samplerate)
samples, read = s()
print(pitch(samples)[0])