aubio is a collection of tools for music and audio analysis.
This package integrates the aubio library with NumPy to provide a set of efficient tools to process and analyse audio signals, including:
- read audio from any media file, including videos and remote streams
- high quality phase vocoder, spectral filterbanks, and linear filters
- Mel-Frequency Cepstrum Coefficients and standard spectral descriptors
- detection of note attacks (onset)
- pitch tracking (fundamental frequency estimation)
- beat detection and tempo tracking
aubio works with both Python 2 and Python 3.
Some examples are available in the python/demos
folder. Each
script is a command line program which accepts one ore more argument.
Notes: installing additional modules is required to run some of the demos.
demo_source.py
uses aubio to read audio samples from media filesdemo_onset_plot.py
detects attacks in a sound file and plots the results using matplotlibdemo_pitch.py
looks for fundamental frequency in a sound file and plots the results using matplotlibdemo_spectrogram.py
,demo_specdesc.py
,demo_mfcc.py
for spectral analysis.
demo_pyaudio.py
anddemo_tapthebeat.py
use pyaudiodemo_pysoundcard_play.py
,demo_pysoundcard.py
use PySoundCarddemo_alsa.py
uses pyalsaaudio
demo_timestretch.py
can change the duration of an input file and write the new sound to disk,demo_wav2midi.py
detects the notes in a file and uses mido to write the results into a MIDI file
Use demo_timestretch_online.py
to slow down loop.wav
, write the results in
stretched_loop.wav
:
$ python demo_timestretch_online.py loop.wav stretched_loop.wav 0.92
The core of aubio is written in C for portability and speed. In addition to NumPy, aubio can be optionally built to use one or more of the following libraries:
-
media file reading:
- ffmpeg / avcodec to decode and read audio from almost any format,
- libsndfile to read audio from uncompressed sound files,
- libsamplerate to re-sample audio signals,
- CoreAudio to read all media formats supported by macOS, iOS, and tvOS.
-
hardware acceleration:
- Atlas and Blas, for accelerated vector and matrix computations,
- fftw3, to compute fast Fourier Transforms of any size,
- Accelerate for accelerated FFT and matrix computations (macOS/iOS),
- Intel IPP, accelerated vector computation and FFT implementation.