sndfile.rs

A safe rust wrapper of libsndfile.
With this crate, you can read or save audio files.

Travis-CI Status Latest version Documentation License

Getting Started

sndfile.rs is available on crates.io.

With minimal features: toml [dependencies] sndfile = "0.1"

With ndarray supports: toml [dependencies.sndfile] version = "0.1" features = ["ndarray_features"]

...and see the docs for how to use it.

Example

```rust extern crate sndfile; extern crate ndarray;

fn main() { use sndfile::*; let mut snd = sndfile::OpenOptions::ReadOnly(ReadOptions::Auto).frompath( "/mnt/st4t0/tuxzz/muz/muz0/Call My Name/13.Loow.flac" ).unwrap(); let data: ndarray::Array2 = snd.readallto_ndarray().unwrap();

let samplerate = snd.getsamplerate(); let nframe = snd.len().unwrap(); let nchannels = snd.getchannels(); let title = snd.gettag(TagType::Title).unwrap(); println!("Loaded song {}:", title); println!(" Length: {:.2} seconds", nframe as f64 / samplerate as f64); println!(" Sample rate: {} Hz", samplerate); println!(" Channel count: {}", n_channels); println!(" DC offset = {}", data.mean().unwrap()); }

/* == Expected output == Loaded song Loow: Length: 277.06 seconds Sample rate: 44100 Hz Channel count: 2 DC offset = 0.00018921464 */ ```

License

Licensed under of * MIT license (LICENSE or http://opensource.org/licenses/MIT)