diff options
| author | Kapten Z∅∅m <55669224+default-username-852@users.noreply.github.com> | 2021-06-13 12:14:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-13 12:14:47 +0200 |
| commit | 42275c61510f38318332a20c1ee41dbc17663b13 (patch) | |
| tree | f1bece192603ae4562f79780ebef63d0852d27a8 /mumd/src/audio.rs | |
| parent | cf3f8c185cede889faccd3d55655a494ccd6f707 (diff) | |
| parent | 9481f3edb37d44957273a8b856ac823d2b5b5f28 (diff) | |
| download | mum-42275c61510f38318332a20c1ee41dbc17663b13.tar.gz | |
Merge pull request #102 from mum-rs/output-rework
Input rework
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()?; |
