1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
/*! * # 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: * * - __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. */ pub(crate) use aubio_sys as ffi; mod fft; mod filterbank; mod log; mod mfcc; mod notes; mod onset; mod pitch; mod pvoc; mod resampler; mod specdesc; mod tempo; mod types; mod utils; mod winfunc; pub mod vec; pub use self::fft::*; pub use self::filterbank::*; pub use self::log::*; pub use self::mfcc::*; pub use self::notes::*; pub use self::onset::*; pub use self::pitch::*; pub use self::pvoc::*; pub use self::resampler::*; pub use self::specdesc::*; pub use self::tempo::*; pub use self::types::*; pub use self::utils::*; pub use self::winfunc::*; /** * Sample data type */ pub type Smpl = ffi::smpl_t; #[macro_export] macro_rules! farr { ($len: expr) => { [0. as $crate::Smpl; $len] }; } #[macro_export] macro_rules! carr { ($len: expr) => { [0. as $crate::Smpl; $len + 2] }; }