Skip to content

aizcutei/ruhear

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RUHear

Crates.io Docs.rs License

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

⚠️ Apple changed some API in MacOS 15, so this crate may not work on MacOS 15 or later. Somehow you can try nightly version of this crate to see if it works.

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

About

Capture system output audio in rust.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages