diff --git a/Services/Audio/AudioLevelMeter.cs b/Services/Audio/AudioLevelMeter.cs index 8f3dbd6..4202328 100644 --- a/Services/Audio/AudioLevelMeter.cs +++ b/Services/Audio/AudioLevelMeter.cs @@ -9,6 +9,7 @@ namespace ytLive.Services.Audio; public sealed class AudioLevelMeter { private const float Smoothing = 0.2f; + private const float DecaySmoothing = 0.5f; private float _level; public float Level => _level; @@ -44,7 +45,8 @@ public sealed class AudioLevelMeter } var rms = (float)Math.Sqrt(sumSquares / count); - _level = _level * (1 - Smoothing) + rms * Smoothing; + var alpha = rms > _level ? Smoothing : DecaySmoothing; + _level = _level * (1 - alpha) + rms * alpha; return _level; }