aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/audio.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src/audio.rs')
-rw-r--r--mumd/src/audio.rs39
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()?;