From 9482fb230248f6af2ffca35deb272c602a57ad46 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 13 Sep 2019 01:50:00 -0400 Subject: [PATCH] add wavy example code --- examples/record.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/record.rs diff --git a/examples/record.rs b/examples/record.rs new file mode 100644 index 0000000000..f9bf8e1747 --- /dev/null +++ b/examples/record.rs @@ -0,0 +1,35 @@ +//! NB: From wavy library +//! +//! This example records audio and plays it back in real time as it's being recorded. + +extern crate wavy; + +use wavy::*; + +use std::collections::VecDeque; + +fn main() -> Result<(), AudioError> { + println!("Opening microphone system"); + let mut mic = MicrophoneSystem::new(SampleRate::Studio)?; + + println!("Opening speaker system"); + let mut speaker = SpeakerSystem::new(SampleRate::Studio)?; + + println!("Done"); + + let mut buffer = VecDeque::new(); + + loop { + mic.record(&mut |_index, l, r| { + buffer.push_back((l, l)); + }); + + speaker.play(&mut || { + if let Some((lsample, rsample)) = buffer.pop_front() { + AudioSample::stereo(lsample, rsample) + } else { + AudioSample::stereo(0, 0) + } + }); + } +}