3 releases

0.2.2 May 12, 2024
0.2.1 Mar 23, 2023
0.2.0 May 16, 2021

#189 in Audio

Download history 46/week @ 2024-06-10 69/week @ 2024-06-17 11/week @ 2024-06-24 34/week @ 2024-07-01 31/week @ 2024-07-08 13/week @ 2024-07-15 51/week @ 2024-07-22 45/week @ 2024-07-29 26/week @ 2024-08-05 50/week @ 2024-08-12 11/week @ 2024-08-19 62/week @ 2024-08-26 44/week @ 2024-09-02 23/week @ 2024-09-09 47/week @ 2024-09-16 178/week @ 2024-09-23

326 downloads per month
Used in 4 crates (2 directly)

GPL-3.0 license

4.5MB
114K SLoC

Rust 89K SLoC // 0.0% comments C 19K SLoC // 0.1% comments Python 6K SLoC // 0.2% comments Forge Config 300 SLoC // 0.8% comments Batch 165 SLoC Shell 48 SLoC // 0.1% comments

Safe aubio library bindings

github crate docs GPL-3.0 CI

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:

  • 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.

Dependencies