Expand description
§Safe bindings for aubio library
This crate provides safe Rust bindings to 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 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
- intelipp Enable using Intel IPP library
- accelerate Enable using acceleration framework on apple platforms
- blas Enable using blas library
- atlas Enable using atlas library
- double Enable double presicion of audio sample data
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.
The features such as fftw3, intelipp, accelerate, blas, atlas and double is take an effect only for builtin aubio C library.
Modules§
- vec
- Vector data wrappers
Macros§
Structs§
- FFT
- FFT (Fast Fourier Transformation) object
- Filter
Bank - Filterbank object.
- FnLogger
- Closure logger wrapper
- Log
- Logging
- MFCC
- MFCC object
- Note
- Recognized note data
- Notes
- Notes detection object
- Onset
- Onset detection object
- PVoc
- Phase vocoder object
- Pitch
- Pitch detection object
- Resampler
- Resampler object
- Spec
Desc - Spectral description object
- Tempo
- Tempo detection object
Enums§
- Error
- The error type
- LogLevel
- Logging level
- Onset
Mode - Onset detection function
- Pitch
Mode - Pitch detection method
- Pitch
Unit - Pitch output unit
- Resample
Mode - Resampling method
- Spec
Shape - Spectral shape descriptor
- Window
Type - The window function type
Traits§
- AsNative
Str - The trait for null-terminated string constants
- Logger
- Log output handler
- Spec
Method - Spectral description function
Functions§
- bin_
to_ freq - Convert frequency bin to frequency (Hz)
- bin_
to_ hz - Convert frequency bin to frequency (Hz)
- bin_
to_ midi - Convert frequency bin to midi value
- db_spl
- Compute sound pressure level (SPL) in dB.
- freq_
to_ bin - Convert frequency (Hz) to frequency bin
- freq_
to_ midi - Convert frequency (Hz) to midi value in range 0..128
- hz_
to_ bin - Convert frequency (Hz) to frequency bin
- hz_
to_ mel - Convert frequency (Hz) to mel
- hz_
to_ mel_ htk - Convert frequency (Hz) to mel
- level_
detection - Get buffer level if level >= threshold, 1.0 otherwise
- level_
lin - Compute sound level on a linear scale.
- mel_
to_ hz - Convert mel to frequency (Hz)
- mel_
to_ hz_ htk - Convert mel to frequency (Hz)
- midi_
to_ bin - Convert midi value to frequency bin
- midi_
to_ freq - Convert midi value in range 0..128 to frequency (Hz)
- silence_
detection - Check if buffer level in dB SPL is under a given threshold.
- unwrap_
2pi - Compute the principal argument
- zero_
crossing_ rate - Zero-crossing rate (ZCR)