Crates.io | sound_stream |
lib.rs | sound_stream |
version | 0.6.0 |
source | src |
created_at | 2015-03-03 09:42:04.543464 |
updated_at | 2015-12-12 23:55:19.918092 |
description | Provides a simple interface to the default audio input and output device streams on a user's system. |
homepage | https://github.com/RustAudio/sound_stream |
repository | https://github.com/RustAudio/sound_stream.git |
max_upload_size | |
id | 1511 |
size | 57,521 |
A simple-as-possible, fast audio I/O stream wrapping PortAudio for Rust! It looks like this:
// 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 (output_sample, input_sample) in o.iter_mut().zip(i.iter()) {
*output_sample = *input_sample;
}
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.