diff options
Diffstat (limited to 'mumd/src/audio')
| -rw-r--r-- | mumd/src/audio/input.rs | 1 | ||||
| -rw-r--r-- | mumd/src/audio/transformers.rs | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/mumd/src/audio/input.rs b/mumd/src/audio/input.rs index b84cefb..7a7ff0f 100644 --- a/mumd/src/audio/input.rs +++ b/mumd/src/audio/input.rs @@ -102,7 +102,6 @@ impl DefaultAudioInputDevice { opus::Application::Voip, ) .unwrap(); - // 4 blocks @ 2.5 ms meaning 10 ms total let buffer_size = (sample_rate.0 * frame_size / 400) as usize; let transformers = vec![Box::new(NoiseGate::new(50)) as Box<dyn Transformer + Send + 'static>]; diff --git a/mumd/src/audio/transformers.rs b/mumd/src/audio/transformers.rs index 6994a40..25e28b8 100644 --- a/mumd/src/audio/transformers.rs +++ b/mumd/src/audio/transformers.rs @@ -1,7 +1,11 @@ +/// A trait that represents a transform of a audio buffer in some way. pub trait Transformer { + /// Do the transform. Returning `None` is interpreted as "the buffer is unwanted". + /// The implementor is free to modify the buffer however it wants to. fn transform<'a>(&mut self, buf: &'a mut [f32]) -> Option<&'a mut [f32]>; } +/// A struct representing a noise gate transform. pub struct NoiseGate { alltime_high: f32, open: usize, @@ -9,6 +13,8 @@ pub struct NoiseGate { } impl NoiseGate { + /// Create a new noise gate. `deactivation_delay` is defined in terms of + /// how many quiet frames it receives before closing the noise gate. pub fn new(deactivation_delay: usize) -> Self { Self { alltime_high: 0.0, |
