From 3b880613f6cbc5ba8b19d934521e13688bcf2c2f Mon Sep 17 00:00:00 2001
From: Brian Peiris <brianpeiris@gmail.com>
Date: Tue, 10 Apr 2018 16:02:44 -0700
Subject: [PATCH] multiply visual on mic indicator

---
 src/react-components/ui-root.js | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js
index ce2d1aa9f..c193cad2e 100644
--- a/src/react-components/ui-root.js
+++ b/src/react-components/ui-root.js
@@ -372,23 +372,24 @@ class UIRoot extends Component {
       const AudioContext = window.AudioContext || window.webkitAudioContext;
       const micLevelAudioContext = new AudioContext();
       const micSource = micLevelAudioContext.createMediaStreamSource(mediaStream);
-      const analyzer = micLevelAudioContext.createAnalyser();
-      const levels = new Uint8Array(analyzer.fftSize);
+      const analyser = micLevelAudioContext.createAnalyser();
+      analyser.fftSize = 32;
+      const levels = new Uint8Array(analyser.frequencyBinCount);
 
-      micSource.connect(analyzer);
+      micSource.connect(analyser);
 
       const micUpdateInterval = setInterval(() => {
-        analyzer.getByteTimeDomainData(levels);
-
+        analyser.getByteTimeDomainData(levels);
         let v = 0;
-
         for (let x = 0; x < levels.length; x++) {
-          v = Math.max(levels[x] - 127, v);
+          v = Math.max(levels[x] - 128, v);
         }
-
         const level = v / 128.0;
-        this.micLevelMovingAverage.push(Date.now(), level);
-        this.setState({ micLevel: this.micLevelMovingAverage.movingAverage() });
+        // multiplier to increase visual indicator
+        const multiplier = 6;
+        this.micLevelMovingAverage.push(Date.now(), level * multiplier);
+        const average = this.micLevelMovingAverage.movingAverage();
+        this.setState({ micLevel: average });
       }, 50);
 
       const micDeviceId = this.micDeviceIdForMicLabel(this.micLabelForMediaStream(mediaStream));
-- 
GitLab