[][src]Crate aubio_rs

Safe bindings for aubio 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:

  • generate-bindings which runs bindgen to generate bindings (useful for unsupported archs)

Modules

vec

Vector data wrappers

Macros

carr
farr

Structs

FFT

FFT (Fast Fourier Transformation) 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

SpecDesc

Spectral description object

Tempo

Tempo detection object

Enums

Error

The error type

LogLevel

Logging level

OnsetMode

Onset detection function

PitchMode

Pitch detection method

PitchUnit

Pitch output unit

ResampleMode

Resampling method

SpecShape

Spectral shape descriptor

WindowType

The window function type

Traits

AsNativeStr

The trait for null-terminated string constants

Logger

Log output handler

SpecMethod

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)

Type Definitions

Result

The alias for result type with payload

Status

The alias for rusult type without payload