diff --git a/web-client/client.html b/web-client/client.html index 25dfad8..c67aa06 100644 --- a/web-client/client.html +++ b/web-client/client.html @@ -600,18 +600,18 @@ return; } - // Берём RMS от satellite вместо локального микрофона - let avg = currentRms * 100; // Конвертируем 0.0-1.0 в 0-100 + // Масштабирование RMS: 0 → 10%, 0.15 → 100% + // Формула: avg = 10 + (RMS / 0.15) * 90 + let avg = 10 + (currentRms / 0.15) * 90; + avg = Math.min(100, Math.max(10, avg)); // Clamp 10-100 // Сглаживание как в оригинале rmsSmoothed = rmsSmoothed * 0.7 + avg * 0.3; avg = rmsSmoothed; - // Если satellite RMS недоступен – делаем «живую» симуляцию - if(avg < 1) { - avg = 12 + Math.random() * 25; - if(stateText.innerText.includes('LISTEN') || stateText.innerText.includes('SPEAK')) - avg = 45 + Math.random() * 55; + // Если satellite RMS недоступен (совсем тихо) – симуляция + if(currentRms < 0.001) { + avg = 10 + Math.random() * 5; // Маленькие колебания на базовом уровне } // Отрисовка 42 неоновых столбцов (баров)