From 12440fe1fe70077ffccf0a3208bf65ba2c470197 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 13 Sep 2019 02:14:15 -0400 Subject: [PATCH] add old "main.rs" as "weird.rs", add debugging to beep --- examples/weird.rs | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 examples/weird.rs diff --git a/examples/weird.rs b/examples/weird.rs new file mode 100644 index 0000000000..f7efb75946 --- /dev/null +++ b/examples/weird.rs @@ -0,0 +1,61 @@ + +extern crate cpal; +extern crate hound; +extern crate sample; +//extern crate signal; +extern crate sonogram; +extern crate wavy; + +use wavy::*; +//use signal; + +use std::collections::VecDeque; + +fn main() { + println!("Run"); + record().unwrap(); +} + +fn record() -> Result<(), AudioError> { + // Connect to the speaker and microphone systems. + let mut mic = MicrophoneSystem::new(SampleRate::Normal)?; + let mut speaker = SpeakerSystem::new(SampleRate::Sparse)?; + + let mut buffer = VecDeque::new(); + +/* // Convert a signal to its RMS. +let signal = signal::rate(44_100.0).const_hz(440.0).sine();; +let ring_buffer = ring_buffer::Fixed::from([[0.0]; WINDOW_SIZE]); +let mut rms_signal = signal.rms(ring_buffer);*/ + + loop { + // Record some sound. + mic.record(&mut |_whichmic, l, r| { + buffer.push_back((l, r)); + }); + + let mut last_rsample = None; + let mut last_lsample = None; + + // Play that sound. + speaker.play(&mut || { + if let Some((lsample, rsample)) = buffer.pop_front() { + //let rsample = rsample.saturating_mul(2); + //let lsample = lsample.saturating_mul(2); + last_rsample = Some(rsample); + last_lsample = Some(lsample); + /*let swap = rsample; + let rsample = lsample; + let lsample = swap;*/ + AudioSample::stereo(lsample, rsample) + } else { + // Play silence if not enough has been recorded yet. + //let rsample = last_rsample.unwrap_or(0); + //let lsample = last_lsample.unwrap_or(0); + let rsample = 0; + let lsample = 0; + AudioSample::stereo(rsample, lsample) + } + }); + } +}