A simple-as-possible, fast audio I/O stream wrapping PortAudio for Rust! It looks like this:
```Rust // The callback we'll use to pass to the Stream. It will write the input directly to the output. let f = Box::new(move |input: &[f32], : Settings, output: &mut[f32], _: Settings, dt: f64, _: CallbackFlags| { for (outputsample, inputsample) in o.itermut().zip(i.iter()) { *outputsample = *inputsample; } CallbackResult::Continue });
// Run our callback on the default, duplex, non-blocking stream. let stream = SoundStream::new() .duplex(StreamParams::new(), StreamParams::new()) .run_callback(f) .unwrap(); ```
Add sound_stream to your Cargo.toml dependencies like so:
[dependencies]
sound_stream = "*"
For more details, see the example.
SoundStream uses PortAudio as a cross-platform audio backend. The rust-portaudio dependency will first try to find an already installed version on your system before trying to download it and build PortAudio itself.
MIT - Same license as PortAudio.