Spaces:
Sleeping
Sleeping
var p=Object.defineProperty;var w=(s,r,t)=>r in s?p(s,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[r]=t;var n=(s,r,t)=>(w(s,typeof r!="symbol"?r+"":r,t),t);class y extends AudioWorkletProcessor{constructor(){super();n(this,"bufferSize",2048);n(this,"_bytesWritten",0);n(this,"_buffer",new Float32Array(this.bufferSize));this.initBuffer()}initBuffer(){this._bytesWritten=0}isBufferEmpty(){return this._bytesWritten===0}isBufferFull(){return this._bytesWritten===this.bufferSize}process(t){return this.append(t[0][0]),!0}append(t){if(this.isBufferFull()&&this.flush(),!!t)for(let e=0;e<t.length;e++)this._buffer[this._bytesWritten++]=t[e]}flush(){const t=this._bytesWritten<this.bufferSize?this._buffer.slice(0,this._bytesWritten):this._buffer,e=this.downsampleBuffer(t,44100,16e3);this.port.postMessage(e),this.initBuffer()}downsampleBuffer(t,e,u){if(u==e)return t;if(u>e)throw"downsampling rate show be smaller than original sample rate";const h=e/u,_=Math.round(t.length/h),o=new Int16Array(_);let i=0,l=0;for(;i<o.length;){const c=Math.round((i+1)*h);let b=0,d=0;for(let f=l;f<c&&f<t.length;f++)b+=t[f],d++;o[i]=Math.min(1,b/d)*32767,i++,l=c}return o.buffer}}registerProcessor("recorder.worklet",y); | |