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 неоновых столбцов (баров)