#port-audio #bindings #com

portaudio-rs

PortAudio bindings for Rust

3 releases

Uses old Rust 2015

0.3.2 May 14, 2020
0.3.1 Jun 11, 2019
0.3.0 Mar 6, 2017

#265 in Audio

Download history 147/week @ 2023-11-20 197/week @ 2023-11-27 153/week @ 2023-12-04 203/week @ 2023-12-11 172/week @ 2023-12-18 125/week @ 2023-12-25 167/week @ 2024-01-01 162/week @ 2024-01-08 143/week @ 2024-01-15 175/week @ 2024-01-22 146/week @ 2024-01-29 348/week @ 2024-02-05 168/week @ 2024-02-12 187/week @ 2024-02-19 343/week @ 2024-02-26 296/week @ 2024-03-04

1,020 downloads per month
Used in 9 crates (3 directly)

MIT license

52KB
1K SLoC

portaudio-rs

Build Status

Documentation

PortAudio bindings for Rust

See http://portaudio.com/

Example

extern crate portaudio_rs as portaudio;

fn demo() -> portaudio::PaResult
{
    let stream = try!(portaudio::stream::Stream::open_default(
                          0, // input channels
                          1, // output channels
                          44100.0, // sample rate
                          portaudio::stream::FRAMES_PER_BUFFER_UNSPECIFIED,
                          None // no callback
                     ));

    try!(stream.start());

    let mut phase = 0.0f32;
    let mut buffer = Vec::with_capacity(44100);
    for _i in (0..44100)
    {
        // Small amplitude such that the test does not produce sound
        buffer.push(phase * 0.001);

        phase += 0.03;
        if phase > 1.0 { phase -= 2.0; }
    }

    try!(stream.write(&buffer));

    Ok(())
}

fn main()
{
    portaudio::initialize().unwrap();
    println!("{:?}", demo());
    portaudio::terminate().unwrap();
}

Dependencies

~135KB