Skip to content
This repository has been archived by the owner on Aug 19, 2019. It is now read-only.
/ sound_stream Public archive

A Rust audio IO stream in the style of an "Event Iterator" driven by PortAudio.

Notifications You must be signed in to change notification settings

RustAudio/sound_stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEPRECATED

rust-portaudio's API has improved enough to the point where sound_stream is no longer necessary.

SoundStream Build Status

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();

Usage

Add sound_stream to your Cargo.toml dependencies like so:

[dependencies]
sound_stream = "*"

For more details, see the examples.

PortAudio

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.

License

MIT - Same license as PortAudio.

About

A Rust audio IO stream in the style of an "Event Iterator" driven by PortAudio.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages