katyo / aubio-rs

Rust bindings for Aubio library
37 stars 7 forks source link

Safe bindings for aubio library

github crate docs GPL-3.0 CI

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:

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.