# Safe _aubio_ library bindings
[](https://github.com/katyo/aubio-rs)
[](https://crates.io/crates/aubio-rs)
[](https://docs.rs/aubio-rs)
[](https://opensource.org/licenses/GPL-3.0)
[](https://github.com/katyo/aubio-rs/actions?query=workflow%3ARust)
This projects aims provide safe Rust bindings for [_aubio_](//github.com/aubio/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:
* __bindgen__ Force generate bindings itself instead of use pre-generated (_useful for unsupported archs_)
* __builtin__ Force compile builtin _aubio_ C-library
* __pkg-config__ Use _pkg-config_ to find installed libraries
* __shared__ Build shared _aubio_ C-library
* __static__ Build static _aubio_ C-library
* __fftw3__ Enable using _fftw3_ library
When __pkg-config__ feature is used the installed __aubio__ library will be used if found.
To force build and link builtin version you can use __builtin__ feature.