From 149127c920fe1f3ef8f9508f159e2b1355a29b94 Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Mon, 8 Jun 2026 14:20:50 -0400 Subject: [PATCH] fix: recalibrate level meter dB window to [-70, -10] for FFT peak data --- .../Controls/AudioPlayerBar/LevelMeterFab.razor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DeepDrftPublic.Client/Controls/AudioPlayerBar/LevelMeterFab.razor.cs b/DeepDrftPublic.Client/Controls/AudioPlayerBar/LevelMeterFab.razor.cs index 8e413df..0d0cb49 100644 --- a/DeepDrftPublic.Client/Controls/AudioPlayerBar/LevelMeterFab.razor.cs +++ b/DeepDrftPublic.Client/Controls/AudioPlayerBar/LevelMeterFab.razor.cs @@ -15,8 +15,8 @@ public partial class LevelMeterFab : ComponentBase, IAsyncDisposable // spec contract: floor/ceiling define the dB window, and the linear map places // -12 dB at 60% fill (green/yellow) and -4.5 dB at 85% (yellow/orange) to match // the SVG gradient stops. The attack/release coefficients are by-ear tuning values. - private const double FloorDb = -30.0; // fill = 0% - private const double CeilingDb = 0.0; // fill = 100% + private const double FloorDb = -70.0; // fill = 0%; lowered to match FFT peak values (AnalyserNode.getFloatFrequencyData returns peaks, not RMS — typical loud dance tracks cluster ~-40 to -60 dB) + private const double CeilingDb = -10.0; // fill = 100%; lowered to match FFT peak ceiling (loud dance FFT peaks land around -10 dB, far below 0 dB RMS full-scale) private const double SilenceFloorDb = -80.0; // matches the analyzer's normalization window private const double AttackCoefficient = 0.5; // fast rise toward a louder reading