diff options
Diffstat (limited to 'mumd/src/audio.rs')
| -rw-r--r-- | mumd/src/audio.rs | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index 63adcc6..2e20583 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -1,17 +1,13 @@ pub mod input; -mod noise_gate; pub mod output; +pub mod transformers; use crate::audio::input::{AudioInputDevice, DefaultAudioInputDevice}; -use crate::audio::noise_gate::{ - from_interleaved_samples_stream, OpusEncoder, StreamingNoiseGate, StreamingSignalExt, -}; use crate::audio::output::{AudioOutputDevice, ClientStream, DefaultAudioOutputDevice}; use crate::error::AudioError; use crate::network::VoiceStreamType; use crate::state::StatePhase; -use cpal::SampleRate; use dasp_interpolate::linear::Linear; use dasp_signal::{self as signal, Signal}; use futures_util::stream::Stream; @@ -81,27 +77,20 @@ impl AudioInput { input_volume: f32, phase_watcher: watch::Receiver<StatePhase>, ) -> Result<Self, AudioError> { - let mut default = DefaultAudioInputDevice::new(input_volume, phase_watcher)?; - let sample_rate = SampleRate(SAMPLE_RATE); + let mut default = DefaultAudioInputDevice::new(input_volume, phase_watcher, 4)?; - let opus_stream = OpusEncoder::new( - 4, - sample_rate.0, - default.num_channels(), - StreamingSignalExt::into_interleaved_samples(StreamingNoiseGate::new( - from_interleaved_samples_stream::<_, f32>(default.sample_receiver()), //TODO group frames correctly - 10_000, - )), - ) - .enumerate() - .map(|(i, e)| VoicePacket::Audio { - _dst: std::marker::PhantomData, - target: 0, // normal speech - session_id: (), // unused for server-bound packets - seq_num: i as u64, - payload: VoicePacketPayload::Opus(e.into(), false), - position_info: None, - }); + let opus_stream = default + .sample_receiver() + .unwrap() + .enumerate() + .map(|(i, e)| VoicePacket::Audio { + _dst: std::marker::PhantomData, + target: 0, // normal speech + session_id: (), // unused for server-bound packets + seq_num: i as u64, + payload: VoicePacketPayload::Opus(e.into(), false), + position_info: None, + }); default.play()?; |
