From f9ad7c2cb15b035d9c0d1090de92ef5542bba77c Mon Sep 17 00:00:00 2001 From: gramps Date: Tue, 18 Aug 2026 12:15:44 -0700 Subject: [PATCH] fix: asymmetric meter decay for faster desktop level response Issue 3: Desktop meter now decays 2.5x faster than it rises (DecaySmoothing=0.5 vs Smoothing=0.2). When rms drops below current level the higher alpha pulls the bar down quickly; when audio returns it rises smoothly. 207 tests pass, 0 warnings. --- Services/Audio/AudioLevelMeter.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; }