#capture #system #output #capturing #ru-buffers

ruhear

A library for capturing audio from the system

1 unstable release

0.1.0 Feb 7, 2024

#620 in Audio

Apache-2.0

17KB
330 lines

RUHear

A simple crate that allows you to capture system output audio (what aRe yoU HEARing).

Dependencies

Usage

See examples folder for simple example.

use ruhear::{Ruhear, RUBuffers, RUCallback};

fn main() {
    // Create a callback that will be called every time the audio buffers are ready
    // RUBuffers is a multichannel Vec<f32>. Default sampleRate is 48000Hz on Windows and macOS and 44100Hz on Linux.
    let callback = |data: RUBuffers| {
        println!("{:?}", data);
    };

    // Create a Ruhear instance and start capturing audio, use RUCallback! macro to create a thread-safe callback
    let mut ruhear = RUCallback!(callback);

    // Start capturing audio
    ruhear.start();

    std::thread::sleep(std::time::Duration::from_secs(5));

    // Stop capturing audio
    ruhear.stop();
}

TODO

  • Error handling
  • Add support for ASIO(Windows) and JACK(Linux)
  • Add support for fine-grained control capturing audio like from a specific application/device

Dependencies

~0.5–28MB
~426K SLoC