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