@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
1 lines • 444 B
JavaScript
class RMSProcessor extends AudioWorkletProcessor{constructor(){super(),this.smoothing=.3,this.prev=0}process(s){const t=s[0];if(!t||!t[0])return!0;const o=t[0];let r=0;for(let s=0;s<o.length;s++){const t=o[s];r+=t*t}const e=Math.sqrt(r/o.length),h=this.smoothing*e+(1-this.smoothing)*this.prev;this.prev=h;let c=20*Math.log10(h||1e-8);return c<-100&&(c=-100),this.port.postMessage({rmsDb:c}),!0}}registerProcessor("rms-processor",RMSProcessor);