# RUHear A simple crate that allows you to capture system output audio (what a**R**e yo**U** **HEAR**ing). ## Dependencies - On windows and linux: [cpal](https://crates.io/crates/cpal) - On macos: [screencapturekit](https://crates.io/crates/screencapturekit) - No plan for other platforms yet ## Usage See examples folder for simple example. ```rust 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. 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