A safe rust wrapper of libsndfile.
With this crate, you can read or save audio files.
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.
```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
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
*/
```
Licensed under of * MIT license (LICENSE or http://opensource.org/licenses/MIT)