Safe aubio library bindings
This projects aims provide safe Rust bindings for aubio C library.
Aubio is a library to label music and sounds.
It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody.
Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.
aubio provide several algorithms and routines, including:
- several onset detection methods
- different pitch detection methods
- tempo tracking and beat detection
- MFCC (mel-frequency cepstrum coefficients)
- FFT and phase vocoder
- up/down-sampling
- digital filters (low pass, high pass, and more)
- spectral filtering
- transient/steady-state separation
- sound file read and write access
- various mathematics utilities for music applications
The name aubio comes from audio with a typo: some errors are likely to be found in the results.
Crate features
The following features can be used to customize crate configuration:
- generate-bindings Runs bindgen to generate bindings (useful for unsupported archs)
- compile-library Clones source from git and builds aubio C library
- fetch-prebuilt Forces to fetch prebuilt library (currently not supported)
- dynamic-link Forces to use dynamic linking instead of static
By default the installed aubio C library will be used.
You may provide AUBIO_LIBDIR
environment variable to specify path
to precompiled aubio C libraries.
Also AUBIO_LIB
environment variable may be used to override the name
of library.
The AUBIO_INCLUDEDIR
environment variable can help specify path
to C headers of library.
The following features can be used to customize library configuration:
- with-fftw3f Enables floating-point fftw3 support
- with-fftw3 Enables fftw3 support
- with-wav Enables wavread/wavwrite support
- with-jack Enables jack support
- with-sndfile Enables libsndfile support
- with-avcodec Enables libavcodec support
- with-samplerate Enables libsamplerate support
Pre-generated bindings supported for the following architectures:
- x86
- x86_64
- arm
- aarch64
- mips
- mips64
- powerpc
- powerpc64
- sparc (currently blacklisted)
- sparc64
- wasm32