Transpiled version (2610L) is out of date.
sS hjs_createAudioMeter() { ret hjs([[ var audioMeterDebug = false; function createAudioMeter(audioContext,clipLevel,averaging,clipLag) { var processor = audioContext.createScriptProcessor(512); processor.onaudioprocess = volumeAudioProcess; processor.clipping = false; processor.lastClip = 0; processor.volume = 0; processor.clipLevel = clipLevel || 0.98; processor.averaging = averaging || 0.95; processor.clipLag = clipLag || 750; processor.absLevel = 0; // this will have no effect, since we don't copy the input to the output, // but works around a current Chrome bug. processor.connect(audioContext.destination); processor.checkClipping = function(){ if (!this.clipping) return false; if ((this.lastClip + this.clipLag) < window.performance.now()) this.clipping = false; return this.clipping; }; processor.shutdown = function(){ this.disconnect(); this.onaudioprocess = null; }; return processor; } function volumeAudioProcess( event ) { var buf = event.inputBuffer.getChannelData(0); var bufLength = buf.length; var sum = 0; var x; // Do a root-mean-square on the samples: sum up the squares... var absLevel = 0; for (var i=0; i<bufLength; i++) { x = buf[i]; var abs = Math.abs(x); absLevel = Math.max(absLevel, abs); if (!this.clipping && abs >= this.clipLevel) { console.log("Got clipping: " + x); this.clipping = true; this.lastClip = window.performance.now(); } sum += x * x; } // ... then take the square root of the sum. var rms = Math.sqrt(sum / bufLength); this.absLevel = absLevel; if (audioMeterDebug) console.log("absLevel: " + absLevel); // Now smooth this out with the averaging factor applied // to the previous sample - take the max here because we // want "fast attack, slow release." this.volume = Math.max(rms, this.volume*this.averaging); } ]]); }
Began life as a copy of #1014015
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
Snippet ID: | #1028685 |
Snippet name: | hjs_createAudioMeter - see #1014015 |
Eternal ID of this version: | #1028685/9 |
Text MD5: | 9c707958fc356ec371281403a259566e |
Author: | stefan |
Category: | javax / html / speech |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2020-07-05 15:02:03 |
Source code size: | 2032 bytes / 71 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 216 / 310 |
Version history: | 8 change(s) |
Referenced in: | #1006654 - Standard functions list 2 (LIVE, continuation of #761) |