diff --git a/public/default.css b/public/default.css index 370946c..10b30c2 100644 --- a/public/default.css +++ b/public/default.css @@ -30,6 +30,22 @@ body { z-index: -1; // this is optional } +#krtitle { + position: absolute; + top: 20%; + left: 50%; + transform: translate(-50%); + writing-mode: vertical-lr; +} + +#entitle { + position: absolute; + bottom: 15%; + left: 50%; + transform: translate(-50%); + writing-mode: vertical-lr; +} + .popup { display: none; position: absolute; @@ -277,7 +293,15 @@ details summary::-webkit-details-marker { .roomsel { position: absolute; - top: 50%; + width: 100%; + height: 100%; + top: 0%; + left: 0%; +} + +.roomsel button { + position: absolute; + bottom: 50px; left: 50%; transform: translate(-50%); } @@ -314,8 +338,51 @@ summary { cursor: pointer; } +.delete { + position: absolute; + right: 0; + padding: 0; + cursor: pointer; + padding: 2px; +} + +.intro { + top: 40%; + transform: translate(-50%); +} + +button { + padding: 2px 6px 3px 6px; + font-size: 12px; +} + +.roomsel .title { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -30%); + height: 600px; + writing-mode: vertical-lr; +} + @media screen and (max-width: 700px) { + #krtitle { + position: absolute; + top: 20%; + left: 50%; + transform: translate(-50%); + writing-mode: vertical-lr; + } + + #entitle { + position: absolute; + bottom: 10%; + left: 50%; + transform: translate(-50%); + writing-mode: vertical-lr; + } + .notice { position: absolute; display: inline-block; @@ -326,4 +393,23 @@ summary { padding-bottom: 20px; } + .intro { + top: 30%; + transform: translate(-50%); + } + + button { + padding: 8px 6px 5px 6px; + font-size: 12px; + } + + .title { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -30%); + height: 600px; + writing-mode: vertical-lr; + } + } diff --git a/public/js/Tone-14.8.36.min.js b/public/js/Tone-14.8.36.min.js new file mode 100644 index 0000000..bccdaa6 --- /dev/null +++ b/public/js/Tone-14.8.36.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Tone=e():t.Tone=e()}("undefined"!=typeof self?self:this,function(){return(()=>{var s={228:t=>{t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var s=0,n=new Array(e);s{t.exports=function(t){if(Array.isArray(t))return t},t.exports.default=t.exports,t.exports.__esModule=!0},575:t=>{t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},913:t=>{function n(t,e){for(var s=0;s{t.exports=function(t,e){var s=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=s){var n,i,r=[],o=!0,a=!1;try{for(s=s.call(t);!(o=(n=s.next()).done)&&(r.push(n.value),!e||r.length!==e);o=!0);}catch(t){a=!0,i=t}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return r}},t.exports.default=t.exports,t.exports.__esModule=!0},521:t=>{t.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},38:(t,e,s)=>{var n=s(858),i=s(884),r=s(379),o=s(521);t.exports=function(t,e){return n(t)||i(t,e)||r(t,e)||o()},t.exports.default=t.exports,t.exports.__esModule=!0},379:(t,e,s)=>{var n=s(228);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var s=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(s="Object"===s&&t.constructor?t.constructor.name:s)||"Set"===s?Array.from(t):"Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?n(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},382:function(t,e,s){!function(t,e,s,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function o(t,e,s){return{endTime:e,insertTime:s,type:"exponentialRampToValue",value:t}}function a(t,e,s){return{endTime:e,insertTime:s,type:"linearRampToValue",value:t}}function h(t,e){return{startTime:e,type:"setValue",value:t}}function c(t,e,s){return{duration:s,startTime:e,type:"setValueCurve",values:t}}function l(t,e,s){var n=s.startTime,i=s.target,s=s.timeConstant;return i+(e-i)*Math.exp((n-t)/s)}function u(t){return"exponentialRampToValue"===t.type}function p(t){return"linearRampToValue"===t.type}function d(t){return u(t)||p(t)}function f(t){return"setValue"===t.type}function _(t){return"setValueCurve"===t.type}function m(t,e,s,n){var i=t[e];return void 0===i?n:d(i)||f(i)?i.value:_(i)?i.values[i.values.length-1]:l(s,m(t,e-1,i.startTime,n),i)}function g(t,e,s,n,i){return void 0===s?[n.insertTime,i]:d(s)?[s.endTime,s.value]:f(s)?[s.startTime,s.value]:_(s)?[s.startTime+s.duration,s.values[s.values.length-1]]:[s.startTime,m(t,e-1,s.startTime,i)]}function v(t){return"cancelAndHold"===t.type}function y(t){return"cancelScheduledValues"===t.type}function x(t){return v(t)||y(t)?t.cancelTime:u(t)||p(t)?t.endTime:t.startTime}function w(t,e,s,n){var i=n.endTime,n=n.value;return s===n?n:0=s:x(t)>=s}),n=this._automationEvents[t];if(-1!==t&&(this._automationEvents=this._automationEvents.slice(0,t)),v(e)){var i=this._automationEvents[this._automationEvents.length-1];if(void 0!==n&&d(n)){if(T(i))throw new Error("The internal list is malformed.");var t=_(i)?i.startTime+i.duration:x(i),r=_(i)?i.values[i.values.length-1]:i.value,r=(u(n)?w:b)(s,t,r,n),r=(u(n)?o:a)(r,s,this._currenTime);this._automationEvents.push(r)}void 0!==i&&T(i)&&this._automationEvents.push(h(this.getValue(s),s)),void 0!==i&&_(i)&&i.startTime+i.duration>s&&(this._automationEvents[this._automationEvents.length-1]=c(new Float32Array([6,7]),i.startTime,s-i.startTime))}}else{r=this._automationEvents.findIndex(function(t){return x(t)>s}),i=-1===r?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[r-1];if(void 0!==i&&_(i)&&x(i)+i.duration>s)return!1;i=u(e)?o(e.value,e.endTime,this._currenTime):p(e)?a(e.value,s,this._currenTime):e;if(-1===r)this._automationEvents.push(i);else{if(_(e)&&s+e.duration>x(this._automationEvents[r]))return!1;this._automationEvents.splice(r,0,i)}}return!0}},{key:"flush",value:function(e){var t,s,n=this._automationEvents.findIndex(function(t){return x(t)>e});1e}),n=this._automationEvents[s],i=(-1===s?this._automationEvents.length:s)-1,r=this._automationEvents[i];if(void 0!==r&&T(r)&&(void 0===n||!d(n)||n.insertTime>e))return l(e,m(this._automationEvents,i-1,r.startTime,this._defaultValue),r);if(void 0!==r&&f(r)&&(void 0===n||!d(n)))return r.value;if(void 0!==r&&_(r)&&(void 0===n||!d(n)||r.startTime+r.duration>e))return e{for(var s in e)qm.o(e,s)&&!qm.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},qm.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),qm.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var Fm={};return(()=>{"use strict";qm.r(Fm),qm.d(Fm,{AMOscillator:()=>sf,AMSynth:()=>If,Abs:()=>yf,Add:()=>lf,AmplitudeEnvelope:()=>Rf,Analyser:()=>nm,AudioToGain:()=>tf,AutoFilter:()=>x_,AutoPanner:()=>b_,AutoWah:()=>S_,BaseContext:()=>Bp,BiquadFilter:()=>Vf,BitCrusher:()=>A_,Buffer:()=>Mm,BufferSource:()=>Rm,Buffers:()=>Em,Channel:()=>um,Chebyshev:()=>D_,Chorus:()=>q_,Clock:()=>Dd,Compressor:()=>gm,Context:()=>Up,Convolver:()=>Tm,CrossFade:()=>g_,DCMeter:()=>am,Delay:()=>Od,Destination:()=>km,Distortion:()=>F_,Draw:()=>Dm,DuoSynth:()=>Lf,EQ3:()=>bm,Emitter:()=>Wp,Envelope:()=>Df,FFT:()=>om,FMOscillator:()=>nf,FMSynth:()=>zf,FatOscillator:()=>of,FeedbackCombFilter:()=>Hf,FeedbackDelay:()=>V_,Filter:()=>Nf,Follower:()=>T_,Freeverb:()=>z_,Frequency:()=>function(t,e){return new cd(Jp(),t,e)},FrequencyClass:()=>cd,FrequencyEnvelope:()=>Pf,FrequencyShifter:()=>P_,Gain:()=>xd,GainToAudio:()=>xf,Gate:()=>vm,GrainPlayer:()=>vf,GreaterThan:()=>Sf,GreaterThanZero:()=>Tf,IntervalTimeline:()=>Fd,JCReverb:()=>G_,LFO:()=>df,Limiter:()=>ym,Listener:()=>Cm,Loop:()=>i_,LowpassCombFilter:()=>Kf,Master:()=>Am,MembraneSynth:()=>Uf,Merge:()=>M_,MetalSynth:()=>Bf,Meter:()=>rm,MidSideCompressor:()=>xm,MidSideMerge:()=>J_,MidSideSplit:()=>H_,Midi:()=>function(t,e){return new Ed(Jp(),t,e)},MidiClass:()=>Ed,Mono:()=>pm,MonoSynth:()=>jf,MultibandCompressor:()=>wm,MultibandSplit:()=>dm,Multiply:()=>ef,Negate:()=>wf,Noise:()=>Ud,NoiseSynth:()=>Gf,Offline:()=>function(n,i,r=2,o=Jp().sampleRate){return yp(this,void 0,void 0,function*(){const t=Jp(),e=new Yp(r,i,o);Kp(e),yield n(e);var s=e.render();Kp(t);s=yield s;return new Xp(s)})},OfflineContext:()=>Yp,OmniOscillator:()=>cf,OnePoleFilter:()=>Jf,Oscillator:()=>Hd,PWMOscillator:()=>af,PanVol:()=>lm,Panner:()=>w_,Panner3D:()=>_m,Param:()=>_d,Part:()=>r_,Pattern:()=>__,Phaser:()=>Y_,PingPongDelay:()=>Z_,PitchShift:()=>X_,Player:()=>mf,Players:()=>gf,PluckSynth:()=>t_,PolySynth:()=>e_,Pow:()=>kf,PulseOscillator:()=>rf,Recorder:()=>mm,Reverb:()=>$_,Sampler:()=>s_,Scale:()=>uf,ScaleExp:()=>Af,Sequence:()=>m_,Signal:()=>Td,Solo:()=>cm,Split:()=>O_,StateTimeline:()=>fd,StereoWidener:()=>tm,Subtract:()=>bf,SyncedSignal:()=>Cf,Synth:()=>qf,Ticks:()=>function(t,e){return new Rd(Jp(),t,e)},TicksClass:()=>Rd,Time:()=>function(t,e){return new hd(Jp(),t,e)},TimeClass:()=>hd,Timeline:()=>Np,ToneAudioBuffer:()=>Xp,ToneAudioBuffers:()=>Md,ToneAudioNode:()=>md,ToneBufferSource:()=>Bd,ToneEvent:()=>n_,ToneOscillatorNode:()=>$d,Transport:()=>Sm,TransportTime:()=>function(t,e){return new pd(Jp(),t,e)},TransportTimeClass:()=>pd,Tremolo:()=>em,Unit:()=>e,UserMedia:()=>Xd,Vibrato:()=>sm,Volume:()=>Vd,WaveShaper:()=>Kd,Waveform:()=>hm,Zero:()=>pf,connect:()=>vd,connectSeries:()=>gd,connectSignal:()=>Sd,context:()=>Om,dbToGain:()=>td,debug:()=>t,defaultArg:()=>Dp,disconnect:()=>yd,fanIn:()=>function(...t){const e=t.pop();Ju(e)&&t.forEach(t=>vd(t,e))},ftom:()=>id,gainToDb:()=>ed,getContext:()=>Jp,getDestination:()=>function(){return Jp().destination},getDraw:()=>function(){return Jp().draw},getListener:()=>function(){return Jp().listener},getTransport:()=>function(){return Jp().transport},immediate:()=>function(){return Jp().immediate()},intervalToFrequencyRatio:()=>sd,isArray:()=>np,isBoolean:()=>sp,isDefined:()=>Ju,isFunction:()=>Ku,isNote:()=>rp,isNumber:()=>tp,isObject:()=>ep,isString:()=>ip,isUndef:()=>Hu,loaded:()=>function(){return Xp.loaded()},mtof:()=>od,now:()=>function(){return Jp().now()},optionsFromArguments:()=>Cp,setContext:()=>Kp,start:()=>function(){return Hp.resume()},supported:()=>$u,version:()=>s});var t={};qm.r(t),qm.d(t,{assert:()=>op,assertContextRunning:()=>hp,assertRange:()=>ap,assertUsedScheduleTime:()=>pp,enterScheduledCallback:()=>up,log:()=>fp,setLogger:()=>function(t){dp=t},warn:()=>_p});var e={};qm.r(e);const s="14.8.36";var n,i,a,o,r,h,c,l,u,p,d,f,_,m,g,v,y,x,w,b,T,S,k,A,C,D,O,M,E,R,q,F,I,V,N,P,j,L,z,W,B,U,G,Q,Z,X,Y,$,H,J,K,tt,et,st,nt=qm(382);const it=new WeakSet,rt=new WeakMap,ot=new WeakMap,at=new WeakMap,ht=new WeakMap,ct=new WeakMap,lt=new WeakMap,ut=new WeakMap,pt=new WeakMap,dt=new WeakMap,ft={construct:()=>ft},_t=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,mt=(t,e)=>{const s=[];let n=t.replace(/^[\s]+/,""),i=n.match(_t);for(;null!==i;){const t=i[1].slice(1,-1),r=i[0].replace(/([\s]+)?;?$/,"").replace(t,new URL(t,e).toString());s.push(r),n=n.slice(i[0].length).replace(/^[\s]+/,""),i=n.match(_t)}return[s.join(";"),n]},gt=t=>{if(void 0!==t&&!Array.isArray(t))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},vt=t=>{if(!(t=>{try{new new Proxy(t,ft)}catch{return!1}return!0})(t))throw new TypeError("The given value for processorCtor should be a constructor.");if(null===t.prototype||"object"!=typeof t.prototype)throw new TypeError("The given value for processorCtor should have a prototype.")},yt=(t,e)=>{e=t.get(e);if(void 0===e)throw new Error("A value with the given key could not be found.");return e},xt=(t,e)=>{e=Array.from(t).filter(e);if(1{var i=yt(t,e),r=xt(i,t=>t[0]===s&&t[1]===n);return 0===i.size&&t.delete(e),r},bt=t=>yt(lt,t),Tt=t=>{if(it.has(t))throw new Error("The AudioNode is already stored.");it.add(t),bt(t).forEach(t=>t(!0))},St=t=>"port"in t,kt=t=>{if(!it.has(t))throw new Error("The AudioNode is not stored.");it.delete(t),bt(t).forEach(t=>t(!1))},At=(t,e)=>{!St(t)&&e.every(t=>0===t.size)&&kt(t)},Ct={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Dt=(t,e)=>t.context===e,Ot=t=>{try{t.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},Mt=()=>new DOMException("","IndexSizeError"),Et=e=>{var s;e.getChannelData=(s=e.getChannelData,t=>{try{return s.call(e,t)}catch(t){if(12===t.code)throw Mt();throw t}})},Rt={numberOfChannels:1},qt=-34028234663852886e22,Ft=-qt,It=t=>it.has(t),Vt={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},Nt=t=>yt(rt,t),Pt=t=>yt(at,t),jt=(e,s)=>{const t=Nt(e)["activeInputs"];t.forEach(t=>t.forEach(([t])=>{s.includes(e)||jt(t,[...s,e])}));var n,i,n="playbackRate"in e?[e.playbackRate]:St(e)?Array.from(e.parameters.values()):"frequency"in(i=e)&&"gain"in i?[e.Q,e.detune,e.frequency,e.gain]:"offset"in e?[e.offset]:!("frequency"in(i=e))&&"gain"in i?[e.gain]:"detune"in(n=e)&&"frequency"in n?[e.detune,e.frequency]:"pan"in e?[e.pan]:[];for(const e of n){const t=Pt(e);void 0!==t&&t.activeInputs.forEach(([t])=>jt(t,s))}It(e)&&kt(e)},Lt=t=>{jt(t.destination,[])},zt=t=>"context"in t,Wt=t=>zt(t[0]),Bt=(t,e,s,n)=>{for(const e of t)if(s(e)){if(n)return!1;throw Error("The set contains at least one similar element.")}return t.add(e),!0},Ut=(t,e,[s,n],i)=>{Bt(t,[e,s,n],t=>t[0]===e&&t[1]===s,i)},Gt=(t,[e,s,n],i)=>{var r=t.get(e);void 0===r?t.set(e,new Set([[s,n]])):Bt(r,[s,n],t=>t[0]===s,i)},Qt=t=>"inputs"in t,Zt=(t,e,s,n)=>{if(Qt(e)){var i=e.inputs[n];return t.connect(i,s,0),[i,s,0]}return t.connect(e,s,n),[e,s,n]},Xt=(t,e,s)=>{for(const n of t)if(n[0]===e&&n[1]===s)return t.delete(n),n;return null},Yt=(t,e)=>{if(!bt(t).delete(e))throw new Error("Missing the expected event listener.")},$t=(t,e,s)=>{var n=yt(t,e),i=xt(n,t=>t[0]===s);return 0===n.size&&t.delete(e),i},Ht=(t,e,s,n)=>{Qt(e)?t.disconnect(e.inputs[n],s,0):t.disconnect(e,s,n)},Jt=t=>yt(ot,t),Kt=t=>yt(ht,t),te=t=>ut.has(t),ee=t=>!it.has(t),se=(r,o)=>new Promise(e=>{if(null!==o)e(!0);else{const o=r.createScriptProcessor(256,1,1),t=r.createGain(),s=r.createBuffer(1,2,44100),n=s.getChannelData(0);n[0]=1,n[1]=1;const i=r.createBufferSource();i.buffer=s,i.loop=!0,i.connect(o).connect(r.destination),i.connect(t),i.disconnect(t),o.onaudioprocess=t=>{t=t.inputBuffer.getChannelData(0);Array.prototype.some.call(t,t=>1===t)?e(!0):e(!1),i.stop(),o.onaudioprocess=null,i.disconnect(o),o.disconnect(r.destination)},i.start()}}),ne=(t,s)=>{const e=new Map;for(const s of t)for(const t of s){const s=e.get(t);e.set(t,void 0===s?1:s+1)}e.forEach((t,e)=>s(e,t))},ie=t=>"context"in t,re=(t,e,s,n,i)=>{var[r,o]=((t,e,s,n)=>{var{activeInputs:i,passiveInputs:e}=Nt(e),i=Xt(i[n],t,s);return null===i?[wt(e,t,s,n)[2],!1]:[i[2],!0]})(t,s,n,i);if(null!==r&&(Yt(t,r),!o||e||te(t)||Ht(Jt(t),Jt(s),n,i)),It(s)){const t=Nt(s)["activeInputs"];At(s,t)}},oe=(t,e,s,n)=>{var[i,r]=((t,e,s)=>{var{activeInputs:n,passiveInputs:e}=Pt(e),n=Xt(n,t,s);return null===n?[$t(e,t,s)[1],!1]:[n[2],!0]})(t,s,n);null!==i&&(Yt(t,i),!r||e||te(t)||Jt(t).disconnect(Kt(s),n))};class ae{constructor(t){this._map=new Map(t)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(s,n=null){return this._map.forEach((t,e)=>s.call(n,t,e,this))}get(t){return this._map.get(t)}has(t){return this._map.has(t)}keys(){return this._map.keys()}values(){return this._map.values()}}const he={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}};function ce(t,e,s,n,i){if("function"==typeof t.copyFromChannel)0===e[s].byteLength&&(e[s]=new Float32Array(128)),t.copyFromChannel(e[s],n,i);else{const r=t.getChannelData(n);if(0===e[s].byteLength)e[s]=r.slice(i,i+128);else{const t=new Float32Array(r.buffer,i*Float32Array.BYTES_PER_ELEMENT,128);e[s].set(t)}}}const le=(t,e,s,n,i)=>{"function"==typeof t.copyToChannel?0!==e[s].byteLength&&t.copyToChannel(e[s],n,i):0!==e[s].byteLength&&t.getChannelData(n).set(e[s],i)},ue=(e,s)=>{const n=[];for(let t=0;t{const{port1:n,port2:i}=new MessageChannel;return new Promise(t=>{const e=()=>{i.onmessage=null,n.close(),i.close(),t()};i.onmessage=()=>e();try{n.postMessage(s,[s])}finally{e()}})},ve={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},ye=(t,e,s)=>{s=e[s];if(void 0===s)throw t();return s},xe={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},we={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},be=()=>new DOMException("","InvalidStateError"),Te=()=>new DOMException("","InvalidAccessError"),Se={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},ke=(s,n,i,r,o,a,h,t,c,l,u)=>{var e=l.length;let p=t;for(let t=0;t{var e=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const s=t.decodeAudioData(e.buffer,()=>{});return void 0!==s&&(s.catch(()=>{}),!0)}catch{}return!1},De=(t,e,s)=>{e=e[s];void 0!==e&&e!==t[s]&&(t[s]=e)},Oe=(t,e)=>{De(t,e,"channelCount"),De(t,e,"channelCountMode"),De(t,e,"channelInterpretation")},Me=t=>"function"==typeof t.getFloatTimeDomainData,Ee=(t,e,s)=>{e=e[s];void 0!==e&&e!==t[s].value&&(t[s].value=e)},Re=n=>{var i;n.start=(i=n.start,(t=0,e=0,s)=>{if("number"==typeof s&&s<0||e<0||t<0)throw new RangeError("The parameters can't be negative.");i.call(n,t,e,s)})},qe=e=>{var s;e.stop=(s=e.stop,(t=0)=>{if(t<0)throw new RangeError("The parameter can't be negative.");s.call(e,t)})},Fe=(t,e)=>null===t?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(t*e))))),Ie=(t,e)=>{t=t.createBiquadFilter();return Oe(t,e),Ee(t,e,"Q"),Ee(t,e,"detune"),Ee(t,e,"frequency"),Ee(t,e,"gain"),De(t,e,"type"),t},Ve=(t,e)=>{t=t.createChannelSplitter(e.numberOfOutputs);return Oe(t,e),(t=>{const e=t.numberOfOutputs;Object.defineProperty(t,"channelCount",{get:()=>e,set:t=>{if(t!==e)throw be()}}),Object.defineProperty(t,"channelCountMode",{get:()=>"explicit",set:t=>{if("explicit"!==t)throw be()}}),Object.defineProperty(t,"channelInterpretation",{get:()=>"discrete",set:t=>{if("discrete"!==t)throw be()}})})(t),t},Ne=(t,e)=>(t.connect=e.connect.bind(e),t.disconnect=e.disconnect.bind(e),t),Pe=(t,e)=>{t=t.createDelay(e.maxDelayTime);return Oe(t,e),Ee(t,e,"delayTime"),t},je=(t,e)=>{t=t.createGain();return Oe(t,e),Ee(t,e,"gain"),t};function Le(e,s){let n=[0,0];for(let t=e.length-1;0<=t;--t)n=[(i=n)[0]*s[0]-i[1]*s[1],i[0]*s[1]+i[1]*s[0]],n[0]+=e[t];var i;return n}const ze=(t,e,s,n)=>t.createScriptProcessor(e,s,n),We=()=>new DOMException("","NotSupportedError"),Be={numberOfChannels:1},Ue={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},Ge={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},Qe={disableNormalization:!1},Ze={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Xe={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},Ye=(t,e,s)=>void 0===t.copyFromChannel?t.getChannelData(s)[0]:(t.copyFromChannel(e,s),e[0]),$e=t=>{if(null===t)return!1;var e=t.length;return e%2!=0?0!==t[Math.floor(e/2)]:t[e/2-1]+t[e/2]!==0},He=(t,e,s,n)=>{let i=t;for(;!i.hasOwnProperty(e);)i=Object.getPrototypeOf(i);var{get:r,set:o}=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(t,e,{get:s(r),set:n(o)})},Je=(e,s,n)=>{try{e.setValueAtTime(s,n)}catch(t){if(9!==t.code)throw t;Je(e,s,n+1e-7)}},Ke=t=>{const e=t.createOscillator();try{e.start(-1)}catch(t){return t instanceof RangeError}return!1},ts=t=>{const e=t.createBuffer(1,1,44100),s=t.createBufferSource();s.buffer=e,s.start(),s.stop();try{return s.stop(),!0}catch{return!1}},es=t=>{const e=t.createOscillator();try{e.stop(-1)}catch(t){return t instanceof RangeError}return!1},ss=()=>{try{new DOMException}catch{return!1}return!0},ns=()=>new Promise(e=>{const t=new ArrayBuffer(0),{port1:s,port2:n}=new MessageChannel;s.onmessage=({data:t})=>e(null!==t),n.postMessage(t,[t])}),is=(n,t)=>{const i=t.createGain();n.connect(i);const e=(s=n.disconnect,()=>{s.call(n,i),n.removeEventListener("ended",e)});var s;n.addEventListener("ended",e),Ne(n,i),n.stop=(e=>{let s=!1;return(t=0)=>{if(s)try{e.call(n,t)}catch{i.gain.setValueAtTime(0,t)}else e.call(n,t),s=!0}})(n.stop)},rs=(s,n)=>t=>{var e={value:s};return Object.defineProperties(t,{currentTarget:e,target:e}),("function"==typeof n?n:n.handleEvent).call(s,t)},os=(o=Bt,(t,e,[s,n,i],r)=>{o(t[n],[e,s,i],t=>t[0]===e&&t[1]===s,r)}),as=(a=Bt,(t,e,[s,n,i],r)=>{var o=t.get(s);void 0===o?t.set(s,new Set([[n,e,i]])):a(o,[n,e,i],t=>t[0]===n&&t[1]===e,r)}),hs=(i=xt,(t,e,s,n)=>i(t[n],t=>t[0]===e&&t[1]===s)),cs=new WeakMap,ls=(n=cs,t=>{return null!==(t=n.get(t))&&void 0!==t?t:0}),us=(r=new Map,h=new WeakMap,(e,t)=>{const s=h.get(e);if(void 0!==s)return s;var n=r.get(e);if(void 0!==n)return n;try{const s=t();return s instanceof Promise?(r.set(e,s),s.catch(()=>!1).then(t=>(r.delete(e),h.set(e,t),t))):(h.set(e,s),s)}catch{return h.set(e,!1),!1}}),ps="undefined"==typeof window?null:window,ds=(m=us,g=Mt,(t,e)=>{const s=t.createAnalyser();if(Oe(s,e),!(e.maxDecibels>e.minDecibels))throw g();return De(s,e,"fftSize"),De(s,e,"maxDecibels"),De(s,e,"minDecibels"),De(s,e,"smoothingTimeConstant"),m(Me,()=>Me(s))||((i=s).getFloatTimeDomainData=e=>{var s=new Uint8Array(e.length);i.getByteTimeDomainData(s);var n=Math.max(s.length,i.fftSize);for(let t=0;t{t=_(t);if(null===t.renderer)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return t.renderer}),_s=(p=Nt,d=fs,f=te,async(o,a,h)=>{const t=p(o);await Promise.all(t.activeInputs.map((t,r)=>Array.from(t).map(async([t,e])=>{const s=d(t),n=await s.render(t,a),i=o.context.destination;f(t)||o===i&&f(o)||n.connect(h,e,r)})).reduce((t,e)=>[...t,...e],[]))}),ms=(c=ds,l=Jt,u=_s,()=>{const n=new WeakMap;return{render(t,e){var s=n.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=l(t);if(!Dt(s,e)){const l={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,fftSize:s.fftSize,maxDecibels:s.maxDecibels,minDecibels:s.minDecibels,smoothingTimeConstant:s.smoothingTimeConstant};s=c(e,l)}return n.set(e,s),await u(t,e,s),s})(t,e)}}}),gs=(v=ct,t=>{t=v.get(t);if(void 0===t)throw be();return t}),vs=null===(Jc=ps)?null:Jc.hasOwnProperty("OfflineAudioContext")?Jc.OfflineAudioContext:Jc.hasOwnProperty("webkitOfflineAudioContext")?Jc.webkitOfflineAudioContext:null,ys=(et=vs,t=>null!==et&&t instanceof et),xs=new WeakMap,ws=(tt=rs,class{constructor(t){this._nativeEventTarget=t,this._listeners=new WeakMap}addEventListener(e,s,n){if(null!==s){let t=this._listeners.get(s);void 0===t&&(t=tt(this,s),"function"==typeof s&&this._listeners.set(s,t)),this._nativeEventTarget.addEventListener(e,t,n)}}dispatchEvent(t){return this._nativeEventTarget.dispatchEvent(t)}removeEventListener(t,e,s){e=null===e?void 0:this._listeners.get(e);this._nativeEventTarget.removeEventListener(t,void 0===e?null:e,s)}}),bs=null===(ol=ps)?null:ol.hasOwnProperty("AudioContext")?ol.AudioContext:ol.hasOwnProperty("webkitAudioContext")?ol.webkitAudioContext:null,Ts=(K=bs,t=>null!==K&&t instanceof K),Ss=(J=ps,t=>null!==J&&"function"==typeof J.AudioNode&&t instanceof J.AudioNode),ks=(H=ps,t=>null!==H&&"function"==typeof H.AudioParam&&t instanceof H.AudioParam),As=null!==(al=ps)&&al.hasOwnProperty("AudioWorkletNode")?al.AudioWorkletNode:null,Cs=(st=rt,y=(t,e,s)=>{const n=[];for(let t=0;t{const T=new WeakMap;return(n,i,r,o,a)=>{const{activeInputs:h,passiveInputs:c}=_(i),t=_(n)["outputs"],e=g(n),s=t=>{var e=v(i),s=v(n);if(t){const u=wt(c,n,r,o);l(h,n,u,!1),a||w(n)||p(s,e,r,o),b(i)&&Tt(i)}else{const l=d(h,n,r,o);u(c,o,l,!1),a||w(n)||f(s,e,r,o);const p=m(i);if(0===p)x(i)&&At(i,h);else{const l=T.get(i);void 0!==l&&clearTimeout(l),T.set(i,setTimeout(()=>{x(i)&&At(i,h)},1e3*p))}}};return!!y(t,[i,r,o],t=>t[0]===i&&t[1]===r&&t[2]===o,!0)&&(e.add(s),x(n)?l(h,n,[r,o,s],!0):u(c,o,[n,r,s],!0),!0)}})(os,as,Zt,hs,Ht,Nt,ls,bt,Jt,Bt,It,te,ee),w=us,G=ut,Q=Ht,Z=Nt,X=Jt,Y=Kt,$=It,b=n=>(t,e)=>{var s=G.get(t);if(void 0===s){if(!n&&$(t)){const G=X(t),$=Z(t)["outputs"];for(const Z of $)if(Wt(Z)){const Y=X(Z[0]);Q(G,Y,Z[1],Z[2])}else{const Q=Y(Z[0]);G.disconnect(Q,Z[1])}}G.set(t,e)}else G.set(t,s+e)},T=Mt,S=Te,k=We,N=Zt,P=ut,j=Nt,L=Jt,z=Kt,W=gs,B=It,U=ys,A=(t,e)=>{var s=P.get(t);if(void 0===s)throw new Error("Missing the expected cycle count.");var n=W(t.context),n=U(n);if(s===e){if(P.delete(t),!n&&B(t)){const P=L(t),W=j(t)["outputs"];for(const j of W)if(Wt(j)){const z=L(j[0]);N(P,z,j[1],j[2])}else{const N=z(j[0]);P.connect(N,j[1])}}}else P.set(t,s-e)},F=xs,I=Nt,V=yt,C=function e(s,t){const n=zt(t)?t:V(F,t);if("delayTime"in n)return[];if(s[0]===n)return[s];if(s.includes(n))return[];var t=I(n)["outputs"];return Array.from(t).map(t=>e([...s,n],t[0])).reduce((t,e)=>t.concat(e),[])},Ds=ws,O=Ts,M=Ss,E=ks,q=As,class extends Ds{constructor(t,e,s,n){super(s),this._context=t,this._nativeAudioNode=s;const i=D(t);O(i)&&!0!==w(se,()=>se(i,q))&&(i=>{const r=new Map;var o,a;i.connect=(a=i.connect.bind(i),(t,e=0,s=0)=>{const n=ie(t)?a(t,e,s):a(t,e),i=r.get(t);return void 0===i?r.set(t,[{input:s,output:e}]):i.every(t=>t.input!==s||t.output!==e)&&i.push({input:s,output:e}),n}),i.disconnect=(o=i.disconnect,(e,s,n)=>{if(o.apply(i),void 0===e)r.clear();else if("number"==typeof e)for(const[i,o]of r){const s=o.filter(t=>t.output!==e);0===s.length?r.delete(i):r.set(i,s)}else if(r.has(e))if(void 0===s)r.delete(e);else{const i=r.get(e);if(void 0!==i){const o=i.filter(t=>t.output!==s&&(t.input!==n||void 0===n));0===o.length?r.delete(e):r.set(e,o)}}for(const[o,e]of r)e.forEach(t=>{ie(o)?i.connect(o,t.output,t.input):i.connect(o,t.output)})})})(s),ot.set(this,s),lt.set(this,new Set),"closed"!==t.state&&e&&Tt(this),y(this,n,s)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(t){this._nativeAudioNode.channelCount=t}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(t){this._nativeAudioNode.channelCountMode=t}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(t){this._nativeAudioNode.channelInterpretation=t}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(t,e=0,s=0){if(e<0||e>=this._nativeAudioNode.numberOfOutputs)throw T();var n=D(this._context),n=R(n);if(M(t)||E(t))throw S();if(zt(t)){const T=Jt(t);try{const x=Zt(this._nativeAudioNode,T,e,s),b=ee(this);(n||b)&&this._nativeAudioNode.disconnect(...x),"closed"!==this.context.state&&!b&&ee(t)&&Tt(t)}catch(t){if(12===t.code)throw S();throw t}if(x(this,t,e,s,n)){const x=C([this],t);ne(x,b(n))}return t}s=Kt(t);if("playbackRate"===s.name&&1024===s.maxValue)throw k();try{this._nativeAudioNode.connect(s,e),(n||ee(this))&&this._nativeAudioNode.disconnect(s,e)}catch(t){if(12===t.code)throw S();throw t}if(((r,o,a,h)=>{const{activeInputs:c,passiveInputs:l}=Pt(o),t=Nt(r)["outputs"],e=bt(r),s=t=>{const e=Jt(r),s=Kt(o);if(t){const o=$t(l,r,a);Ut(c,r,o,!1),h||te(r)||e.connect(s,a)}else{const o=(t=c,n=r,i=a,xt(t,t=>t[0]===n&&t[1]===i));Gt(l,o,!1),h||te(r)||e.disconnect(s,a)}var n,i};return!!Bt(t,[o,a],t=>t[0]===o&&t[1]===a,!0)&&(e.add(s),It(r)?Ut(c,r,[a,s],!0):Gt(l,[r,a,s],!0),!0)})(this,t,e,n)){const x=C([this],t);ne(x,b(n))}}disconnect(t,e,s){let n;var i=D(this._context),i=R(i);if(void 0===t)n=((t,e)=>{const s=Nt(t),n=[];for(const i of s.outputs)(Wt(i)?re:oe)(t,e,...i),n.push(i[0]);return s.outputs.clear(),n})(this,i);else if("number"==typeof t){if(t<0||t>=this.numberOfOutputs)throw T();n=((t,e,s)=>{const n=Nt(t),i=[];for(const r of n.outputs)r[1]===s&&((Wt(r)?re:oe)(t,e,...r),i.push(r[0]),n.outputs.delete(r));return i})(this,i,t)}else{if(void 0!==e&&(e<0||e>=this.numberOfOutputs))throw T();if(zt(t)&&void 0!==s&&(s<0||s>=t.numberOfInputs))throw T();if(n=((e,s,n,i,r)=>{const o=Nt(e);return Array.from(o.outputs).filter(t=>!(t[0]!==n||void 0!==i&&t[1]!==i||void 0!==r&&t[2]!==r)).map(t=>((Wt(t)?re:oe)(e,s,...t),o.outputs.delete(t),t[0]))})(this,i,t,e,s),0===n.length)throw S()}for(const t of n){const e=C([this],t);ne(e,A)}}});var Ds,Os,Ms,Es,Rs,qs,Fs,Is,Vs,Ns,Ps,js,Ls,zs,Ws,Bs,Us,Gs,Qs,Zs,Xs,Ys,$s,Hs,Js,Ks,tn,en,sn,nn,rn,on,an,hn,cn,ln,un,pn,dn,fn,_n,mn,gn,vn,yn,xn,wn,bn,Tn,Sn,kn,An,Cn,Dn,On,Mn,En,Rn,qn,Fn,In,Vn,Nn,Pn,jn,Ln,zn,Wn,Bn,Un,Gn,Qn,Zn,Xn,Yn,$n,Hn,Jn,Kn,ti,ei,si,ni,ii,ri,oi,ai,hi,ci,li,ui,pi,di,fi,_i,mi,gi,vi,yi,xi,wi,bi,Ti,Si,ki,Ai,Ci,Di,Oi,Mi,Ei,Ri,qi,Fi,Ii,Vi,Ni,Pi,ji,Li,zi,Wi,Bi,Ui,Gi,Qi,Zi,Xi,Yi,$i,Hi,Ji,Ki,tr,er,sr,nr,ir,rr,or,ar,hr,cr,lr,ur,pr,dr,fr,_r,mr,gr,vr,yr,xr,wr,br,Tr,Sr,kr,Ar,Cr,Dr,Or,Mr,Er,Rr,qr,Fr,Ir,Vr,Nr,Pr,jr,Lr,zr,Wr,Br,Ur,Gr,Qr,Zr,Xr,Yr,$r,Hr,Jr,Kr,to,eo,so,no,io,ro,oo,ao,ho,co,lo,uo,po,fo,_o,mo,go,vo,yo,xo,wo,bo,To,So,ko,Ao,Co,Do,Oo,Mo,Eo,Ro,qo,Fo,Io,Vo,No,Po,jo,Lo,zo,Wo,Bo,Uo,Go,Qo,Zo,Xo,Yo,$o,Ho,Jo,Ko,ta,ea,sa,na,ia,ra,oa,aa,ha,ca,la,ua,pa,da,fa,_a,ma,ga,va,ya,xa,wa,ba,Ta,Sa,ka,Aa,Ca,Da,Oa,Ma,Ea,Ra,qa,Fa,Ia,Va,Na,Pa,ja,La,za,Wa,Ba,Ua,Ga,Qa,Za,Xa,Ya,$a,Ha,Ja,Ka,th,eh,sh,nh,ih,rh,oh,ah,hh,ch,lh,uh,ph,dh,fh,_h,mh,gh,vh,yh,xh,wh,bh,Th,Sh,kh,Ah,Ch,Dh,Oh,Mh,Eh,Rh,qh,Fh,Ih,Vh,Nh,Ph,jh,Lh,zh,Wh,Bh,Uh,Gh,Qh,Zh,Xh,Yh,$h,Hh,Jh,Kh,tc,ec,sc,nc,ic,rc,oc,ac,hc,cc,lc,uc,pc,dc,fc,_c,mc,gc,vc,yc,xc,wc,bc,Tc,Sc,kc,Ac,Cc,Dc,Oc,Mc,Ec,Rc,qc,Fc,Ic,Vc,Nc,Pc,jc,Lc,zc,Wc,Bc,Uc,Gc,Qc,Zc,Xc,Yc,$c,Hc,Jc,Kc,tl,el,sl,nl,il,rl,ol=(Jc=Cs,Os=ms,Ms=Mt,Es=ds,Rs=D=gs,qs=R=ys,class extends Jc{constructor(t,e){var s=Rs(t),e={...Ct,...e},e=Es(s,e);super(t,!1,e,qs(s)?Os():null),this._nativeAnalyserNode=e}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(t){this._nativeAnalyserNode.fftSize=t}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(t){var e=this._nativeAnalyserNode.maxDecibels;if(!((this._nativeAnalyserNode.maxDecibels=t)>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=e,Ms()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(t){var e=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=t,!(this._nativeAnalyserNode.maxDecibels>t))throw this._nativeAnalyserNode.minDecibels=e,Ms()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(t){this._nativeAnalyserNode.smoothingTimeConstant=t}getByteFrequencyData(t){this._nativeAnalyserNode.getByteFrequencyData(t)}getByteTimeDomainData(t){this._nativeAnalyserNode.getByteTimeDomainData(t)}getFloatFrequencyData(t){this._nativeAnalyserNode.getFloatFrequencyData(t)}getFloatTimeDomainData(t){this._nativeAnalyserNode.getFloatTimeDomainData(t)}}),al=new WeakSet,Jc=null!==(Ds=ps)&&Ds.hasOwnProperty("AudioBuffer")?Ds.AudioBuffer:null,Ds=(Fs=new Uint32Array(1),t=>(Fs[0]=t,Fs[0]));const hl=(wn=Mt,a=>{a.copyFromChannel=(e,t,s=0)=>{var n=xn(s),t=xn(t);if(t>=a.numberOfChannels)throw wn();var i=a.length,r=a.getChannelData(t),o=e.length;for(let t=n<0?-n:0;t+n{var n=xn(s),t=xn(t);if(t>=a.numberOfChannels)throw wn();const i=a.length,r=a.getChannelData(t),o=e.length;for(let t=n<0?-n:0;t+n{var i,r;n.copyFromChannel=(r=n.copyFromChannel,(t,e,s=0)=>{s=yn(s),e=yn(e);if(s{s=yn(s),e=yn(e);if(s{let p=null;return class e{constructor(t){if(null===h)throw new Error("Missing the native OfflineAudioContext constructor.");var{length:e,numberOfChannels:s,sampleRate:t}={...Rt,...t};null===p&&(p=new h(1,1,44100));const n=null!==a&&r(c,c)?new a({length:e,numberOfChannels:s,sampleRate:t}):p.createBuffer(s,e,t);if(0===n.numberOfChannels)throw o();return"function"!=typeof n.copyFromChannel?(l(n),Et(n)):r(Ot,()=>Ot(n))||u(n),i.add(n),n}static[Symbol.hasInstance](t){return null!==t&&"object"==typeof t&&Object.getPrototypeOf(t)===e.prototype||i.has(t)}}})(al,us,We,Jc,vs,(vn=Jc,()=>{if(null===vn)return!1;try{new vn({length:1,sampleRate:44100})}catch{return!1}return!0}),hl,cl),ul=(gn=je,(t,e)=>{const s=gn(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});e.connect(s).connect(t.destination);const n=()=>{e.removeEventListener("ended",n),e.disconnect(s),s.disconnect()};e.addEventListener("ended",n)}),pl=(fn=fs,_n=Pt,mn=te,async(t,i,r)=>{t=_n(t);await Promise.all(Array.from(t.activeInputs).map(async([t,e])=>{const s=fn(t),n=await s.render(t,i);mn(t)||n.connect(r,e)}))}),dl=(dn=pl,(t,e,s)=>dn(e,t,s)),fl=(en=ul,sn=us,nn=t=>{const e=t.createBufferSource();e.start();try{e.start()}catch{return!0}return!1},rn=t=>{const e=t.createBufferSource(),s=t.createBuffer(1,1,44100);e.buffer=s;try{e.start(0,1)}catch{return!1}return!0},on=t=>{const e=t.createBufferSource();e.start();try{e.stop()}catch{return!1}return!0},an=Ke,hn=ts,cn=es,pn=He,ln=(s,t)=>{const n=t.createBuffer(1,1,44100);null===s.buffer&&(s.buffer=n),pn(s,"buffer",e=>()=>{var t=e.call(s);return t===n?null:t},e=>t=>e.call(s,null===t?n:t))},un=is,(t,e)=>{var i,r,o,s=t.createBufferSource();return Oe(s,e),Ee(s,e,"playbackRate"),De(s,e,"buffer"),De(s,e,"loop"),De(s,e,"loopEnd"),De(s,e,"loopStart"),sn(nn,()=>nn(t))||((o=s).start=(n=>{let i=!1;return(t=0,e=0,s)=>{if(i)throw be();n.call(o,t,e,s),i=!0}})(o.start)),sn(rn,()=>rn(t))||((i=s).start=(r=i.start,(t=0,e=0,s)=>{var n=i.buffer,e=null===n?e:Math.min(n.duration,e);null!==n&&e>n.duration-.5/i.context.sampleRate?r.call(i,t,0,0):r.call(i,t,e,s)})),sn(on,()=>on(t))||ln(s,t),sn(an,()=>an(t))||Re(s),sn(hn,()=>hn(t))||un(s,t),sn(cn,()=>cn(t))||qe(s),en(t,s),s}),_l=(tn=Pt,Js=t=>{t=tn(t);if(null===t.renderer)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return t.renderer},Ks=pl,(t,e,s)=>(Js(e).replay(s),Ks(e,t,s))),ml=(Zs=dl,Xs=fl,Ys=Jt,$s=_l,Hs=_s,()=>{const i=new WeakMap;let r=null,o=null;return{set start(t){r=t},set stop(t){o=t},render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=Ys(t);var n=Dt(s,e);if(!n){const Zs={buffer:s.buffer,channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,loop:s.loop,loopEnd:s.loopEnd,loopStart:s.loopStart,playbackRate:s.playbackRate.value};s=Xs(e,Zs),null!==r&&s.start(...r),null!==o&&s.stop(o)}return i.set(e,s),n?await Zs(e,t.playbackRate,s.playbackRate):await $s(e,t.playbackRate,s.playbackRate),await Hs(t,e,s),s})(t,e)}}}),gl=(bn=at,Is=(t,e)=>{bn.set(t,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:e})},Vs=xs,Ns=ht,Ps=nt.createCancelAndHoldAutomationEvent,js=nt.createCancelScheduledValuesAutomationEvent,Ls=nt.createExponentialRampToValueAutomationEvent,zs=nt.createLinearRampToValueAutomationEvent,Ws=nt.createSetTargetAutomationEvent,Bs=nt.createSetValueAutomationEvent,Us=nt.createSetValueCurveAutomationEvent,Gs=bs,Qs=Je,(p,t,d,e=null,s=null)=>{const f=new nt.AutomationEventList(d.defaultValue),_=t?(c=f,{replay(t){for(const e of c)if("exponentialRampToValue"===e.type){const{endTime:c,value:s}=e;t.exponentialRampToValueAtTime(s,c)}else if("linearRampToValue"===e.type){const{endTime:c,value:n}=e;t.linearRampToValueAtTime(n,c)}else if("setTarget"===e.type){const{startTime:c,target:i,timeConstant:r}=e;t.setTargetAtTime(i,c,r)}else if("setValue"===e.type){const{startTime:c,value:o}=e;t.setValueAtTime(o,c)}else{if("setValueCurve"!==e.type)throw new Error("Can't apply an unknown automation.");{const{duration:c,startTime:a,values:h}=e;t.setValueCurveAtTime(h,a,c)}}}}):null,m={get defaultValue(){return d.defaultValue},get maxValue(){return null===e?d.maxValue:e},get minValue(){return null===s?d.minValue:s},get value(){return d.value},set value(t){d.value=t,m.setValueAtTime(t,p.context.currentTime)},cancelAndHoldAtTime(t){var e,s;return"function"==typeof d.cancelAndHoldAtTime?(null===_&&f.flush(p.context.currentTime),f.add(Ps(t)),d.cancelAndHoldAtTime(t)):(e=Array.from(f).pop(),null===_&&f.flush(p.context.currentTime),f.add(Ps(t)),s=Array.from(f).pop(),d.cancelScheduledValues(t),e!==s&&void 0!==s&&("exponentialRampToValue"===s.type?d.exponentialRampToValueAtTime(s.value,s.endTime):"linearRampToValue"===s.type?d.linearRampToValueAtTime(s.value,s.endTime):"setValue"===s.type?d.setValueAtTime(s.value,s.startTime):"setValueCurve"===s.type&&d.setValueCurveAtTime(s.values,s.startTime,s.duration))),m},cancelScheduledValues:t=>(null===_&&f.flush(p.context.currentTime),f.add(js(t)),d.cancelScheduledValues(t),m),exponentialRampToValueAtTime(t,e){if(0===t)throw new RangeError;if(!Number.isFinite(e)||e<0)throw new RangeError;return null===_&&f.flush(p.context.currentTime),f.add(Ls(t,e)),d.exponentialRampToValueAtTime(t,e),m},linearRampToValueAtTime:(t,e)=>(null===_&&f.flush(p.context.currentTime),f.add(zs(t,e)),d.linearRampToValueAtTime(t,e),m),setTargetAtTime:(t,e,s)=>(null===_&&f.flush(p.context.currentTime),f.add(Ws(t,e,s)),d.setTargetAtTime(t,e,s),m),setValueAtTime:(t,e)=>(null===_&&f.flush(p.context.currentTime),f.add(Bs(t,e)),d.setValueAtTime(t,e),m),setValueCurveAtTime(t,e,s){var n=t instanceof Float32Array?t:new Float32Array(t);if(null!==Gs&&"webkitAudioContext"===Gs.name){const i=e+s,r=p.context.sampleRate,o=Math.ceil(e*r),a=Math.floor(i*r),h=a-o,c=new Float32Array(h);for(let t=0;t{this._nativeAudioBufferSourceNode.removeEventListener("ended",t),It(this)&&kt(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",t)}}stop(t=0){this._nativeAudioBufferSourceNode.stop(t),null!==this._audioBufferSourceNodeRenderer&&(this._audioBufferSourceNodeRenderer.stop=t)}}),yl=(Jc=Cs,Uc=Mt,Gc=be,$c=je,Hc=He,Qc=(t,e,s)=>{const n=t.destination;if(n.channelCount!==e)try{n.channelCount=e}catch{}s&&"explicit"!==n.channelCountMode&&(n.channelCountMode="explicit"),0===n.maxChannelCount&&Object.defineProperty(n,"maxChannelCount",{value:e});const i=$c(t,{channelCount:e,channelCountMode:n.channelCountMode,channelInterpretation:n.channelInterpretation,gain:1});return Hc(i,"channelCount",t=>()=>t.call(i),t=>e=>{t.call(i,e);try{n.channelCount=e}catch(t){if(e>n.maxChannelCount)throw t}}),Hc(i,"channelCountMode",t=>()=>t.call(i),e=>t=>{e.call(i,t),n.channelCountMode=t}),Hc(i,"channelInterpretation",t=>()=>t.call(i),e=>t=>{e.call(i,t),n.channelInterpretation=t}),Object.defineProperty(i,"maxChannelCount",{get:()=>n.maxChannelCount}),i.connect(n),i},class extends Jc{constructor(t,e){var s=Zc(t),n=Xc(s),e=Qc(s,e,n);super(t,!1,e,n?(n=>{const i=new WeakMap;return{render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{var s=e.destination;return i.set(e,s),await n(t,e,s),s})(t,e)}}})(Yc):null),this._isNodeOfNativeOfflineAudioContext=n,this._nativeAudioDestinationNode=e}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(t){if(this._isNodeOfNativeOfflineAudioContext)throw Gc();if(t>this._nativeAudioDestinationNode.maxChannelCount)throw Uc();this._nativeAudioDestinationNode.channelCount=t}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(t){if(this._isNodeOfNativeOfflineAudioContext)throw Gc();this._nativeAudioDestinationNode.channelCountMode=t}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}}),xl=(jc=dl,zc=Jt,Wc=_l,Bc=Yc=_s,()=>{const i=new WeakMap;return{render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=zc(t);var n=Dt(s,e);if(!n){const jc={Q:s.Q.value,channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,detune:s.detune.value,frequency:s.frequency.value,gain:s.gain.value,type:s.type};s=Lc(e,jc)}return i.set(e,s),n?(await jc(e,t.Q,s.Q),await jc(e,t.detune,s.detune),await jc(e,t.frequency,s.frequency),await jc(e,t.gain,s.gain)):(await Wc(e,t.Q,s.Q),await Wc(e,t.detune,s.detune),await Wc(e,t.frequency,s.frequency),await Wc(e,t.gain,s.gain)),await Bc(t,e,s),s})(t,e)}}}),wl=(Pc=cs,(t,e)=>Pc.set(t,e)),bl=(Jc=Cs,Ec=tl=gl,Rc=xl,qc=Te,Fc=Lc=Ie,Ic=Zc=nl=gs,Vc=Xc=il=ys,Nc=wl,class extends Jc{constructor(t,e){var s=Ic(t),e={...pe,...e},e=Fc(s,e),s=Vc(s);super(t,!1,e,s?Rc():null),this._Q=Ec(this,s,e.Q,Ft,qt),this._detune=Ec(this,s,e.detune,1200*Math.log2(Ft),-1200*Math.log2(Ft)),this._frequency=Ec(this,s,e.frequency,t.sampleRate/2,0),this._gain=Ec(this,s,e.gain,40*Math.log10(Ft),qt),this._nativeBiquadFilterNode=e,Nc(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(t){this._nativeBiquadFilterNode.type=t}getFrequencyResponse(t,e,s){try{this._nativeBiquadFilterNode.getFrequencyResponse(t,e,s)}catch(t){if(11===t.code)throw qc();throw t}if(t.length!==e.length||e.length!==s.length)throw qc()}}),Tl=(Oc=Bt,Mc=Ss,(r,i,o)=>{const a=new Set;return r.connect=(c=r.connect,(e,s=0,n=0)=>{var t=0===a.size;if(Mc(e))return c.call(r,e,s,n),Oc(a,[e,s,n],t=>t[0]===e&&t[1]===s&&t[2]===n,!0),t&&i(),e;c.call(r,e,s),Oc(a,[e,s],t=>t[0]===e&&t[1]===s,!0),t&&i()}),r.disconnect=(h=r.disconnect,(t,e,s)=>{var n=0{s.channelCount=1,s.channelCountMode="explicit",Object.defineProperty(s,"channelCount",{get:()=>1,set:()=>{throw Cc()}}),Object.defineProperty(s,"channelCountMode",{get:()=>"explicit",set:()=>{throw Cc()}});const n=t.createBufferSource();Dc(s,()=>{var e=s.numberOfInputs;for(let t=0;tn.disconnect(s))}),kl=(kc=bs,Ac=Sl,(t,e)=>{var s=t.createChannelMerger(e.numberOfInputs);return null!==kc&&"webkitAudioContext"===kc.name&&Ac(t,s),Oe(s,e),s}),Al=(Tc=Jt,()=>{const n=new WeakMap;return{render(t,e){var s=n.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=Tc(t);if(!Dt(s,e)){const Tc={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,numberOfInputs:s.numberOfInputs};s=bc(e,Tc)}return n.set(e,s),await Sc(t,e,s),s})(t,e)}}}),Cl=(Jc=Cs,vc=Al,class extends Jc{constructor(t,e){var s=xc(t),e={...de,...e};super(t,!1,yc(s,e),wc(s)?vc():null)}}),Dl=(mc=Jt,()=>{const n=new WeakMap;return{render(t,e){var s=n.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=mc(t);if(!Dt(s,e)){const mc={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,numberOfOutputs:s.numberOfOutputs};s=_c(e,mc)}return n.set(e,s),await gc(t,e,s),s})(t,e)}}}),Ol=(Jc=Cs,uc=Dl,pc=_c=Ve,class extends Jc{constructor(t,e){var s=dc(t),e={...e={...fe,...e},channelCount:e.numberOfOutputs};super(t,!1,pc(s,e),fc(s)?uc():null)}}),Ml=(lc=Dc=Tl,(t,{offset:e,...s})=>{const n=t.createBuffer(1,2,44100),i=hc(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),r=cc(t,{...s,gain:e}),o=n.getChannelData(0);o[0]=1,o[1]=1,i.buffer=n,i.loop=!0;e={get bufferSize(){},get channelCount(){return r.channelCount},set channelCount(t){r.channelCount=t},get channelCountMode(){return r.channelCountMode},set channelCountMode(t){r.channelCountMode=t},get channelInterpretation(){return r.channelInterpretation},set channelInterpretation(t){r.channelInterpretation=t},get context(){return r.context},get inputs(){return[]},get numberOfInputs(){return i.numberOfInputs},get numberOfOutputs(){return r.numberOfOutputs},get offset(){return r.gain},get onended(){return i.onended},set onended(t){i.onended=t},addEventListener:(...t)=>i.addEventListener(t[0],t[1],t[2]),dispatchEvent:(...t)=>i.dispatchEvent(t[0]),removeEventListener:(...t)=>i.removeEventListener(t[0],t[1],t[2]),start(t=0){i.start.call(i,t)},stop(t=0){i.stop.call(i,t)}};return ac(t,i),lc(Ne(e,r),()=>i.connect(r),()=>i.disconnect(r))}),El=(sc=ac=ul,nc=us,ic=Ml,rc=Ke,oc=es,(t,e)=>{if(void 0===t.createConstantSource)return ic(t,e);var s=t.createConstantSource();return Oe(s,e),Ee(s,e,"offset"),nc(rc,()=>rc(t))||Re(s),nc(oc,()=>oc(t))||qe(s),sc(t,s),s}),Rl=(Kh=Jt,()=>{const i=new WeakMap;let r=null,o=null;return{set start(t){r=t},set stop(t){o=t},render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=Kh(t);var n=Dt(s,e);if(!n){const Hh={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,offset:s.offset.value};s=Jh(e,Hh),null!==r&&s.start(r),null!==o&&s.stop(o)}return i.set(e,s),n?await Hh(e,t.offset,s.offset):await tc(e,t.offset,s.offset),await ec(t,e,s),s})(t,e)}}}),ql=(Jc=Cs,Qh=Rl,$h=rs,class extends Jc{constructor(t,e){var s=Xh(t),n={..._e,...e},e=Zh(s,n),n=Yh(s),s=n?Qh():null;super(t,!1,e,s),this._constantSourceNodeRenderer=s,this._nativeConstantSourceNode=e,this._offset=Gh(this,n,e.offset,Ft,qt),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(t){var e="function"==typeof t?$h(this,t):null;this._nativeConstantSourceNode.onended=e;var s=this._nativeConstantSourceNode.onended;this._onended=null!==s&&s===e?t:s}start(t=0){if(this._nativeConstantSourceNode.start(t),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.start=t),"closed"!==this.context.state){Tt(this);const t=()=>{this._nativeConstantSourceNode.removeEventListener("ended",t),It(this)&&kt(this)};this._nativeConstantSourceNode.addEventListener("ended",t)}}stop(t=0){this._nativeConstantSourceNode.stop(t),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.stop=t)}}),Fl=(t,e)=>{const s=t.createConvolver();if(Oe(s,e),e.disableNormalization===s.normalize&&(s.normalize=!e.disableNormalization),De(s,e,"buffer"),2()=>t.call(s),e=>t=>{if(2()=>t.call(s),e=>t=>{if("max"===t)throw Bh();return e.call(s,t)}),s},Il=(zh=Jt,()=>{const n=new WeakMap;return{render(t,e){var s=n.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=zh(t);if(!Dt(s,e)){const zh={buffer:s.buffer,channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,disableNormalization:!s.normalize};s=Lh(e,zh)}return n.set(e,s),Qt(s)?await Wh(t,e,s.inputs[0]):await Wh(t,e,s),s})(t,e)}}}),Vl=(Jc=Cs,Ih=Il,Vh=Lh=Fl,class extends Jc{constructor(t,e){var s=Nh(t),n={...me,...e},e=Vh(s,n);super(t,!1,e,Ph(s)?Ih():null),this._isBufferNullified=!1,this._nativeConvolverNode=e,null!==n.buffer&&jh(this,n.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(t){if(null===(this._nativeConvolverNode.buffer=t)&&null!==this._nativeConvolverNode.buffer){const t=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=t.createBuffer(1,1,44100),this._isBufferNullified=!0,jh(this,0)}else this._isBufferNullified=!1,jh(this,null===this._nativeConvolverNode.buffer?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(t){this._nativeConvolverNode.normalize=t}}),Nl=(Rh=Jt,i=>{const r=new WeakMap;return{render(t,e){var s=r.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=Rh(t);var n=Dt(s,e);if(!n){const Mh={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,delayTime:s.delayTime.value,maxDelayTime:i};s=Eh(e,Mh)}return r.set(e,s),n?await Mh(e,t.delayTime,s.delayTime):await qh(e,t.delayTime,s.delayTime),await Fh(t,e,s),s})(t,e)}}}),Pl=(Jc=Cs,kh=Nl,Ah=Eh=Pe,class extends Jc{constructor(t,e){var s=Ch(t),n={...ve,...e},e=Ah(s,n),s=Dh(s);super(t,!1,e,s?kh(n.maxDelayTime):null),this._delayTime=Sh(this,s,e.delayTime),Oh(this,n.maxDelayTime)}get delayTime(){return this._delayTime}}),jl=(t,e)=>{t=t.createDynamicsCompressor();if(Oe(t,e),2{const i=new WeakMap;return{render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=xh(t);var n=Dt(s,e);if(!n){const vh={attack:s.attack.value,channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,knee:s.knee.value,ratio:s.ratio.value,release:s.release.value,threshold:s.threshold.value};s=yh(e,vh)}return i.set(e,s),n?(await vh(e,t.attack,s.attack),await vh(e,t.knee,s.knee),await vh(e,t.ratio,s.ratio),await vh(e,t.release,s.release),await vh(e,t.threshold,s.threshold)):(await wh(e,t.attack,s.attack),await wh(e,t.knee,s.knee),await wh(e,t.ratio,s.ratio),await wh(e,t.release,s.release),await wh(e,t.threshold,s.threshold)),await bh(t,e,s),s})(t,e)}}}),zl=(Jc=Cs,ph=Ll,dh=yh=jl,class extends Jc{constructor(t,e){var s=_h(t),e={...xe,...e},e=dh(s,e),s=mh(s);super(t,!1,e,s?ph():null),this._attack=uh(this,s,e.attack),this._knee=uh(this,s,e.knee),this._nativeDynamicsCompressorNode=e,this._ratio=uh(this,s,e.ratio),this._release=uh(this,s,e.release),this._threshold=uh(this,s,e.threshold),gh(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(t){var e=this._nativeDynamicsCompressorNode.channelCount;if(2<(this._nativeDynamicsCompressorNode.channelCount=t))throw this._nativeDynamicsCompressorNode.channelCount=e,fh()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(t){var e=this._nativeDynamicsCompressorNode.channelCountMode;if("max"===(this._nativeDynamicsCompressorNode.channelCountMode=t))throw this._nativeDynamicsCompressorNode.channelCountMode=e,fh()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return"number"==typeof this._nativeDynamicsCompressorNode.reduction.value?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}}),Wl=(oh=vh=Mh=Hh=dl,hh=Jt,ch=wh=qh=tc=_l,()=>{const i=new WeakMap;return{render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=hh(t);var n=Dt(s,e);if(!n){const oh={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,gain:s.gain.value};s=ah(e,oh)}return i.set(e,s),n?await oh(e,t.gain,s.gain):await ch(e,t.gain,s.gain),await lh(t,e,s),s})(t,e)}}}),Bl=(Jc=Cs,sh=Wl,class extends Jc{constructor(t,e){var s=ih(t),e={...we,...e},e=nh(s,e),s=rh(s);super(t,!1,e,s?sh():null),this._gain=eh(this,s,e.gain,Ft,qt)}get gain(){return this._gain}}),Ul=(Ha=Te,Ja=be,(t,e,{channelCount:s,channelCountMode:n,channelInterpretation:i,feedback:r,feedforward:o})=>{const a=Fe(e,t.sampleRate),l=r instanceof Float64Array?r:new Float64Array(r),u=o instanceof Float64Array?o:new Float64Array(o),h=l.length,c=u.length,p=Math.min(h,c);if(0===h||20{const e=t.inputBuffer,s=t.outputBuffer,n=e.numberOfChannels;for(let t=0;td.addEventListener(t[0],t[1],t[2]),dispatchEvent:(...t)=>d.dispatchEvent(t[0]),getFrequencyResponse(e,s,n){if(e.length!==s.length||s.length!==n.length)throw Ha();const i=e.length;for(let t=0;td.removeEventListener(t[0],t[1],t[2])},d)}),Gl=(Ga=us,Ya=Qa=nh=ah=cc=je,$a=vs,Xa=()=>{if(null===$a)return Promise.resolve(!1);const e=new $a(1,1,44100),s=Ya(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(t=>{e.oncomplete=()=>{s.disconnect(),t(0!==e.currentTime)},e.startRendering()})},n=>Ga(Ce,()=>Ce(n))?Promise.resolve(Ga(Xa,Xa)).then(t=>{if(!t){const t=Za(n,512,0,1);n.oncomplete=()=>{t.onaudioprocess=null,t.disconnect()},t.onaudioprocess=()=>n.currentTime,t.connect(n.destination)}return n.startRendering()}):new Promise(e=>{const s=Qa(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.oncomplete=t=>{s.disconnect(),e(t.renderedBuffer)},s.connect(n.destination),n.startRendering()})),Ql=(La=hc=fl,za=Jt,Wa=vs,Ba=lh=bh=Fh=Wh=ec=gc=Sc=_s,Ua=Gl,(r,o)=>{const a=new WeakMap;let h=null;return{render(t,e){var s=a.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=null,n=za(t);var i=Dt(n,e);if(void 0===e.createIIRFilter?s=La(e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):i||(n=e.createIIRFilter(o,r)),a.set(e,null===s?n:s),null===s)return await Ba(t,e,n),n;{if(null===h){if(null===Wa)throw new Error("Missing the native OfflineAudioContext constructor.");const La=new Wa(t.context.destination.channelCount,t.context.length,e.sampleRate);h=(async()=>(await Ba(t,La,La.destination),((e,t,s,n)=>{const i=s instanceof Float64Array?s:new Float64Array(s),r=n instanceof Float64Array?n:new Float64Array(n),o=i.length,a=r.length,h=Math.min(o,a);if(1!==i[0]){for(let t=0;t{if(void 0===t.createIIRFilter)return ja(t,e,s);t=t.createIIRFilter(s.feedforward,s.feedback);return Oe(t,s),t}),Xl=(Jc=Cs,Fa=Zl,Ia=Ql,Va=ih=_h=Ch=Nh=Xh=dc=xc=gs,Pa=gh=Oh=jh=wl,class extends Jc{constructor(t,e){var n,i,s=Va(t),r=Na(s),e={...Se,...e},s=Fa(s,r?null:t.baseLatency,e);super(t,!1,s,r?Ia(e.feedback,e.feedforward):null),(n=s).getFrequencyResponse=(i=n.getFrequencyResponse,(t,e,s)=>{if(t.length!==e.length||e.length!==s.length)throw Te();return i.call(n,t,e,s)}),this._nativeIIRFilterNode=s,Pa(this,1)}getFrequencyResponse(t,e,s){return this._nativeIIRFilterNode.getFrequencyResponse(t,e,s)}}),Yl=(Aa=eh=uh=Sh=Gh=gl,Ca=yc=bc=kl,Da=Zh=Jh=El,Oa=Za=Ka=ze,Ma=th=fh=Th=Bh=We,Ea=Ye,Ra=Na=rh=mh=Dh=Ph=Yh=fc=wc=ys,qa=Uh=He,(_,m)=>{const a=m.listener,{forwardX:t,forwardY:e,forwardZ:s,positionX:n,positionY:i,positionZ:r,upX:o,upY:h,upZ:c}=void 0===a.forwardX?(()=>{const n=new Float32Array(1),p=Ca(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),d=Ra(m);let e=!1,i=[0,0,-1,0,1,0],r=[0,0,0];const f=()=>{if(!e){e=!0;const t=Oa(m,256,9,0);t.onaudioprocess=({inputBuffer:t})=>{const e=[Ea(t,n,0),Ea(t,n,1),Ea(t,n,2),Ea(t,n,3),Ea(t,n,4),Ea(t,n,5)];e.some((t,e)=>t!==i[e])&&(a.setOrientation(...e),i=e);const s=[Ea(t,n,6),Ea(t,n,7),Ea(t,n,8)];s.some((t,e)=>t!==r[e])&&(a.setPosition(...s),r=s)},p.connect(t)}},t=e=>t=>{t!==i[e]&&(i[e]=t,a.setOrientation(...i))},s=e=>t=>{t!==r[e]&&(r[e]=t,a.setPosition(...r))},o=(t,e,s)=>{const n=Da(m,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:e});n.connect(p,0,t),n.start(),Object.defineProperty(n.offset,"defaultValue",{get:()=>e});const i=Aa({context:_},d,n.offset,Ft,qt);var r,o,a,h,c,l,u;return qa(i,"value",t=>()=>t.call(i),e=>t=>{try{e.call(i,t)}catch(t){if(9!==t.code)throw t}f(),d&&s(t)}),i.cancelAndHoldAtTime=(r=i.cancelAndHoldAtTime,d?()=>{throw Ma()}:(...t)=>{t=r.apply(i,t);return f(),t}),i.cancelScheduledValues=(o=i.cancelScheduledValues,d?()=>{throw Ma()}:(...t)=>{t=o.apply(i,t);return f(),t}),i.exponentialRampToValueAtTime=(a=i.exponentialRampToValueAtTime,d?()=>{throw Ma()}:(...t)=>{t=a.apply(i,t);return f(),t}),i.linearRampToValueAtTime=(h=i.linearRampToValueAtTime,d?()=>{throw Ma()}:(...t)=>{t=h.apply(i,t);return f(),t}),i.setTargetAtTime=(c=i.setTargetAtTime,d?()=>{throw Ma()}:(...t)=>{t=c.apply(i,t);return f(),t}),i.setValueAtTime=(l=i.setValueAtTime,d?()=>{throw Ma()}:(...t)=>{t=l.apply(i,t);return f(),t}),i.setValueCurveAtTime=(u=i.setValueCurveAtTime,d?()=>{throw Ma()}:(...t)=>{t=u.apply(i,t);return f(),t}),i};return{forwardX:o(0,0,t(0)),forwardY:o(1,0,t(1)),forwardZ:o(2,-1,t(2)),positionX:o(6,0,s(0)),positionY:o(7,0,s(1)),positionZ:o(8,0,s(2)),upX:o(3,0,t(3)),upY:o(4,1,t(4)),upZ:o(5,0,t(5))}})():a;return{get forwardX(){return t},get forwardY(){return e},get forwardZ(){return s},get positionX(){return n},get positionY(){return i},get positionZ(){return r},get upX(){return o},get upY(){return h},get upZ(){return c}}}),$l=new WeakMap,Hl=(wa=yl,ba=Yl,Sa=$l,class extends ws{constructor(t,e){super(t),this._nativeContext=t,ct.set(this,t),Ta(t)&&Sa.set(t,new Set),this._destination=new wa(this,e),this._listener=ba(this,t),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(t){var e="function"==typeof t?ka(this,t):null;this._nativeContext.onstatechange=e;var s=this._nativeContext.onstatechange;this._onstatechange=null!==s&&s===e?t:s}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}}),Jl=(_a=ul,ma=us,ga=Ke,va=ts,ya=es,xa=is,(t,e)=>{const s=t.createOscillator();return Oe(s,e),Ee(s,e,"detune"),Ee(s,e,"frequency"),void 0!==e.periodicWave?s.setPeriodicWave(e.periodicWave):De(s,e,"type"),ma(ga,()=>ga(t))||Re(s),ma(va,()=>va(t))||xa(s,t),ma(ya,()=>ya(t))||qe(s),_a(t,s),s}),Kl=(pa=Jt,()=>{const i=new WeakMap;let r=null,o=null,a=null;return{set periodicWave(t){r=t},set start(t){o=t},set stop(t){a=t},render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=pa(t);var n=Dt(s,e);if(!n){const la={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,detune:s.detune.value,frequency:s.frequency.value,periodicWave:null===r?void 0:r,type:s.type};s=ua(e,la),null!==o&&s.start(o),null!==a&&s.stop(a)}return i.set(e,s),n?(await la(e,t.detune,s.detune),await la(e,t.frequency,s.frequency)):(await da(e,t.detune,s.detune),await da(e,t.frequency,s.frequency)),await fa(t,e,s),s})(t,e)}}}),tu=(Jc=Cs,ra=ua=Jl,oa=Kl,ca=ka=rs,class extends Jc{constructor(t,e){var s=aa(t),n={...Ue,...e},i=ra(s,n),r=ha(s),e=r?oa():null,s=t.sampleRate/2;super(t,!1,i,e),this._detune=ia(this,r,i.detune,153600,-153600),this._frequency=ia(this,r,i.frequency,s,-s),this._nativeOscillatorNode=i,this._onended=null,this._oscillatorNodeRenderer=e,null!==this._oscillatorNodeRenderer&&void 0!==n.periodicWave&&(this._oscillatorNodeRenderer.periodicWave=n.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(t){var e="function"==typeof t?ca(this,t):null;this._nativeOscillatorNode.onended=e;var s=this._nativeOscillatorNode.onended;this._onended=null!==s&&s===e?t:s}get type(){return this._nativeOscillatorNode.type}set type(t){this._nativeOscillatorNode.type=t,null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(t){this._nativeOscillatorNode.setPeriodicWave(t),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=t)}start(t=0){if(this._nativeOscillatorNode.start(t),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.start=t),"closed"!==this.context.state){Tt(this);const t=()=>{this._nativeOscillatorNode.removeEventListener("ended",t),It(this)&&kt(this)};this._nativeOscillatorNode.addEventListener("ended",t)}}stop(t=0){this._nativeOscillatorNode.stop(t),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.stop=t)}}),eu=(na=fl,(t,e)=>{const s=na(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),n=t.createBuffer(1,2,44100);return s.buffer=n,s.loop=!0,s.connect(e),s.start(),()=>{s.stop(),s.disconnect(e)}}),su=(Ko=be,(r,{curve:t,oversample:e,...s})=>{const o=r.createWaveShaper(),a=r.createWaveShaper();Oe(o,s),Oe(a,s);const h=ta(r,{...s,gain:1}),n=ta(r,{...s,gain:-1}),i=ta(r,{...s,gain:1}),c=ta(r,{...s,gain:-1});let l=null,u=!1,p=null;const d={get bufferSize(){},get channelCount(){return o.channelCount},set channelCount(t){h.channelCount=t,n.channelCount=t,o.channelCount=t,i.channelCount=t,a.channelCount=t,c.channelCount=t},get channelCountMode(){return o.channelCountMode},set channelCountMode(t){h.channelCountMode=t,n.channelCountMode=t,o.channelCountMode=t,i.channelCountMode=t,a.channelCountMode=t,c.channelCountMode=t},get channelInterpretation(){return o.channelInterpretation},set channelInterpretation(t){h.channelInterpretation=t,n.channelInterpretation=t,o.channelInterpretation=t,i.channelInterpretation=t,a.channelInterpretation=t,c.channelInterpretation=t},get context(){return o.context},get curve(){return p},set curve(e){if(null!==e&&e.length<2)throw Ko();if(null===e)o.curve=e,a.curve=e;else{const Jo=e.length,Ko=new Float32Array(Jo+2-Jo%2),ea=new Float32Array(Jo+2-Jo%2);Ko[0]=e[0],ea[0]=-e[Jo-1];const s=Math.ceil((Jo+1)/2),r=(Jo+1)/2-1;for(let t=1;th.addEventListener(t[0],t[1],t[2]),dispatchEvent:(...t)=>h.dispatchEvent(t[0]),removeEventListener:(...t)=>h.removeEventListener(t[0],t[1],t[2])};return null!==t&&(d.curve=t instanceof Float32Array?t:new Float32Array(t)),e!==d.oversample&&(d.oversample=e),sa(Ne(d,i),()=>{h.connect(o).connect(i),h.connect(n).connect(a).connect(c).connect(i),u=!0,ea(p)&&(l=Jo(r,h))},()=>{h.disconnect(o),o.disconnect(i),h.disconnect(n),n.disconnect(a),a.disconnect(c),c.disconnect(i),u=!1,null!==l&&(l(),l=null)})}),nu=(Go=Jo=eu,Qo=be,Zo=su,Xo=ea=$e,$o=bs,Ho=He,(s,t)=>{const n=s.createWaveShaper();if(null!==$o&&"webkitAudioContext"===$o.name&&void 0===s.createGain().gain.automationRate)return Zo(s,t);Oe(n,t);var e=null===t.curve||t.curve instanceof Float32Array?t.curve:new Float32Array(t.curve);if(null!==e&&e.length<2)throw Qo();De(n,{curve:e},"curve"),De(n,t,"oversample");let i=null,r=!1;return Ho(n,"curve",t=>()=>t.call(n),e=>t=>(e.call(n,t),r&&(Xo(t)&&null===i?i=Go(s,n):Xo(t)||null===i||(i(),i=null)),t)),Yo(n,()=>{r=!0,Xo(n.curve)&&(i=Go(s,n))},()=>{r=!1,null!==i&&(i(),i=null)})}),iu=(Io=Zt,Vo=be,jo=ze,Lo=nu,zo=We,Wo=Ht,Bo=Ye,Uo=Yo=sa=Tl,(t,{coneInnerAngle:e,coneOuterAngle:s,coneOuterGain:n,distanceModel:i,maxDistance:r,orientationX:o,orientationY:a,orientationZ:h,panningModel:c,positionX:l,positionY:u,positionZ:p,refDistance:d,rolloffFactor:f,..._})=>{const m=t.createPanner();if(2<_.channelCount)throw zo();if("max"===_.channelCountMode)throw zo();Oe(m,_);const g={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},v=No(t,{...g,channelInterpretation:"speakers",numberOfInputs:6}),y=Po(t,{..._,gain:1}),x=Po(t,{...g,gain:1}),w=Po(t,{...g,gain:0}),b=Po(t,{...g,gain:0}),T=Po(t,{...g,gain:0}),S=Po(t,{...g,gain:0}),k=Po(t,{...g,gain:0}),A=jo(t,256,6,1),C=Lo(t,{...g,curve:new Float32Array([1,1]),oversample:"none"});let D=[o,a,h],O=[l,u,p];const M=new Float32Array(1);A.onaudioprocess=({inputBuffer:t})=>{const e=[Bo(t,M,0),Bo(t,M,1),Bo(t,M,2)];e.some((t,e)=>t!==D[e])&&(m.setOrientation(...e),D=e);const s=[Bo(t,M,3),Bo(t,M,4),Bo(t,M,5)];s.some((t,e)=>t!==O[e])&&(m.setPosition(...s),O=s)},Object.defineProperty(w.gain,"defaultValue",{get:()=>0}),Object.defineProperty(b.gain,"defaultValue",{get:()=>0}),Object.defineProperty(T.gain,"defaultValue",{get:()=>0}),Object.defineProperty(S.gain,"defaultValue",{get:()=>0}),Object.defineProperty(k.gain,"defaultValue",{get:()=>0});const E={get bufferSize(){},get channelCount(){return m.channelCount},set channelCount(t){if(2y.addEventListener(t[0],t[1],t[2]),dispatchEvent:(...t)=>y.dispatchEvent(t[0]),removeEventListener:(...t)=>y.removeEventListener(t[0],t[1],t[2])};return e!==E.coneInnerAngle&&(E.coneInnerAngle=e),s!==E.coneOuterAngle&&(E.coneOuterAngle=s),n!==E.coneOuterGain&&(E.coneOuterGain=n),i!==E.distanceModel&&(E.distanceModel=i),r!==E.maxDistance&&(E.maxDistance=r),o!==E.orientationX.value&&(E.orientationX.value=o),a!==E.orientationY.value&&(E.orientationY.value=a),h!==E.orientationZ.value&&(E.orientationZ.value=h),c!==E.panningModel&&(E.panningModel=c),l!==E.positionX.value&&(E.positionX.value=l),u!==E.positionY.value&&(E.positionY.value=u),p!==E.positionZ.value&&(E.positionZ.value=p),d!==E.refDistance&&(E.refDistance=d),f!==E.rolloffFactor&&(E.rolloffFactor=f),1===D[0]&&0===D[1]&&0===D[2]||m.setOrientation(...D),0===O[0]&&0===O[1]&&0===O[2]||m.setPosition(...O),Uo(Ne(E,m),()=>{y.connect(m),Io(y,C,0,0),C.connect(x).connect(v,0,0),C.connect(w).connect(v,0,1),C.connect(b).connect(v,0,2),C.connect(T).connect(v,0,3),C.connect(S).connect(v,0,4),C.connect(k).connect(v,0,5),v.connect(A).connect(t.destination)},()=>{y.disconnect(m),Wo(y,C,0,0),C.disconnect(x),x.disconnect(v),C.disconnect(w),w.disconnect(v),C.disconnect(b),b.disconnect(v),C.disconnect(T),T.disconnect(v),C.disconnect(S),S.disconnect(v),C.disconnect(k),k.disconnect(v),v.disconnect(A),A.disconnect(t.destination)})}),ru=(Fo=iu,(t,e)=>{var s=t.createPanner();return void 0===s.orientationX?Fo(t,e):(Oe(s,e),Ee(s,e,"orientationX"),Ee(s,e,"orientationY"),Ee(s,e,"orientationZ"),Ee(s,e,"positionX"),Ee(s,e,"positionY"),Ee(s,e,"positionZ"),De(s,e,"coneInnerAngle"),De(s,e,"coneOuterAngle"),De(s,e,"coneOuterGain"),De(s,e,"distanceModel"),De(s,e,"maxDistance"),De(s,e,"panningModel"),De(s,e,"refDistance"),De(s,e,"rolloffFactor"),s)}),ou=(So=la=dl,ko=No=kl,Ao=El,Co=Po=ta=je,Oo=Jt,Mo=vs,Eo=da=_l,Ro=fa=_s,qo=Gl,()=>{const c=new WeakMap;let l=null;return{render(t,e){var s=c.get(e);return void 0!==s?Promise.resolve(s):(async(t,r)=>{let o=null,e=Oo(t);var a={channelCount:e.channelCount,channelCountMode:e.channelCountMode,channelInterpretation:e.channelInterpretation},h={...a,coneInnerAngle:e.coneInnerAngle,coneOuterAngle:e.coneOuterAngle,coneOuterGain:e.coneOuterGain,distanceModel:e.distanceModel,maxDistance:e.maxDistance,panningModel:e.panningModel,refDistance:e.refDistance,rolloffFactor:e.rolloffFactor},s=Dt(e,r);if("bufferSize"in e)o=Co(r,{...a,gain:1});else if(!s){const So={...h,orientationX:e.orientationX.value,orientationY:e.orientationY.value,orientationZ:e.orientationZ.value,positionX:e.positionX.value,positionY:e.positionY.value,positionZ:e.positionZ.value};e=Do(r,So)}if(c.set(r,null===o?e:o),null===o)return s?(await So(r,t.orientationX,e.orientationX),await So(r,t.orientationY,e.orientationY),await So(r,t.orientationZ,e.orientationZ),await So(r,t.positionX,e.positionX),await So(r,t.positionY,e.positionY),await So(r,t.positionZ,e.positionZ)):(await Eo(r,t.orientationX,e.orientationX),await Eo(r,t.orientationY,e.orientationY),await Eo(r,t.orientationZ,e.orientationZ),await Eo(r,t.positionX,e.positionX),await Eo(r,t.positionY,e.positionY),await Eo(r,t.positionZ,e.positionZ)),Qt(e)?await Ro(t,r,e.inputs[0]):await Ro(t,r,e),e;{if(null===l){if(null===Mo)throw new Error("Missing the native OfflineAudioContext constructor.");const So=new Mo(6,t.context.length,r.sampleRate),Co=ko(So,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});Co.connect(So.destination),l=(async()=>{const e=await Promise.all([t.orientationX,t.orientationY,t.orientationZ,t.positionX,t.positionY,t.positionZ].map(async(t,e)=>{e=Ao(So,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:0===e?1:0});return await Eo(So,t,e.offset),e}));for(let t=0;t<6;t+=1)e[t].connect(Co,0,t),e[t].start(0);return qo(So)})()}const So=await l,Oo=Co(r,{...a,gain:1});await Ro(t,r,Oo);const c=[];for(let t=0;tt!==s[e])||Ao.some((t,e)=>t!==n[e])){s=So,n=Ao;const Mo=t/r.sampleRate;e.gain.setValueAtTime(0,Mo),e=Co(r,{...a,gain:0}),i=Do(r,{...h,orientationX:s[0],orientationY:s[1],orientationZ:s[2],positionX:n[0],positionY:n[1],positionZ:n[2]}),e.gain.setValueAtTime(1,Mo),Oo.connect(e).connect(i.inputs[0]),i.connect(o)}}return o}})(t,e)}}}),au=(Jc=Cs,vo=ia=gl,yo=Do=ru,xo=ou,bo=ha=Ta=ys,To=wl,class extends Jc{constructor(t,e){var s=wo(t),e={...Ge,...e},e=yo(s,e),s=bo(s);super(t,!1,e,s?xo():null),this._nativePannerNode=e,this._orientationX=vo(this,s,e.orientationX,Ft,qt),this._orientationY=vo(this,s,e.orientationY,Ft,qt),this._orientationZ=vo(this,s,e.orientationZ,Ft,qt),this._positionX=vo(this,s,e.positionX,Ft,qt),this._positionY=vo(this,s,e.positionY,Ft,qt),this._positionZ=vo(this,s,e.positionZ,Ft,qt),To(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(t){this._nativePannerNode.coneInnerAngle=t}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(t){this._nativePannerNode.coneOuterAngle=t}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(t){this._nativePannerNode.coneOuterGain=t}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(t){this._nativePannerNode.distanceModel=t}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(t){this._nativePannerNode.maxDistance=t}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(t){this._nativePannerNode.panningModel=t}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(t){this._nativePannerNode.refDistance=t}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(t){this._nativePannerNode.rolloffFactor=t}}),hu=(go=Mt,(t,{disableNormalization:e,imag:s,real:n})=>{var i=s instanceof Float32Array?s:new Float32Array(s),n=n instanceof Float32Array?n:new Float32Array(n),e=t.createPeriodicWave(n,i,{disableNormalization:e});if(Array.from(s).length<2)throw go();return e}),cu=(po=hu,fo=wo=aa=gs,_o=new WeakSet,class mo{constructor(t,e){t=fo(t),e=(t=>{var{imag:e,real:s}=t;return void 0===e?void 0===s?{...t,imag:[0,0],real:[0,0]}:{...t,imag:Array.from(s,()=>0),real:s}:void 0===s?{...t,imag:e,real:Array.from(e,()=>0)}:{...t,imag:e,real:s}})({...Qe,...e}),e=po(t,e);return _o.add(e),e}static[Symbol.hasInstance](t){return null!==t&&"object"==typeof t&&Object.getPrototypeOf(t)===mo.prototype||_o.has(t)}}),lu=((u,y,x,w,p,d)=>{const b=16385,T=new Float32Array([1,1]),S=Math.PI/2,k={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},A={...k,oversample:"none"},f=(t,e,s,n,i)=>{if(1===e)return((t,e,s,n)=>{const i=new Float32Array(b),r=new Float32Array(b);for(let t=0;t{const i=new Float32Array(b),r=new Float32Array(b),o=new Float32Array(b),a=new Float32Array(b),h=Math.floor(8192.5);for(let t=0;th){const y=(t-h)/(16384-h)*S;i[t]=Math.cos(y),r[t]=Math.sin(y),o[t]=0,a[t]=1}else{const y=t/(16384-h)*S;i[t]=1,r[t]=0,o[t]=Math.cos(y),a[t]=Math.sin(y)}const c=y(t,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),l=x(t,{...k,gain:0}),u=w(t,{...A,curve:i}),p=x(t,{...k,gain:0}),d=w(t,{...A,curve:r}),f=w(t,{...A,curve:T}),_=x(t,{...k,gain:0}),m=w(t,{...A,curve:o}),g=x(t,{...k,gain:0}),v=w(t,{...A,curve:a});return{connectGraph(){e.connect(c),e.connect(void 0===f.inputs?f:f.inputs[0]),c.connect(l,0),c.connect(p,0),c.connect(_,1),c.connect(g,1),f.connect(s),s.connect(void 0===u.inputs?u:u.inputs[0]),s.connect(void 0===d.inputs?d:d.inputs[0]),s.connect(void 0===m.inputs?m:m.inputs[0]),s.connect(void 0===v.inputs?v:v.inputs[0]),u.connect(l.gain),d.connect(p.gain),m.connect(_.gain),v.connect(g.gain),l.connect(n,0,0),_.connect(n,0,0),p.connect(n,0,1),g.connect(n,0,1)},disconnectGraph(){e.disconnect(c),e.disconnect(void 0===f.inputs?f:f.inputs[0]),c.disconnect(l,0),c.disconnect(p,0),c.disconnect(_,1),c.disconnect(g,1),f.disconnect(s),s.disconnect(void 0===u.inputs?u:u.inputs[0]),s.disconnect(void 0===d.inputs?d:d.inputs[0]),s.disconnect(void 0===m.inputs?m:m.inputs[0]),s.disconnect(void 0===v.inputs?v:v.inputs[0]),u.disconnect(l.gain),d.disconnect(p.gain),m.disconnect(_.gain),v.disconnect(g.gain),l.disconnect(n,0,0),_.disconnect(n,0,0),p.disconnect(n,0,1),g.disconnect(n,0,1)}}})(t,s,n,i);throw p()};return(e,{channelCount:t,channelCountMode:s,pan:n,...i})=>{if("max"===s)throw p();const r=u(e,{...i,channelCount:1,channelCountMode:s,numberOfInputs:2}),o=x(e,{...i,channelCount:t,channelCountMode:s,gain:1}),a=x(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:n});let{connectGraph:h,disconnectGraph:c}=f(e,t,o,a,r);Object.defineProperty(a.gain,"defaultValue",{get:()=>0}),Object.defineProperty(a.gain,"maxValue",{get:()=>1}),Object.defineProperty(a.gain,"minValue",{get:()=>-1});t={get bufferSize(){},get channelCount(){return o.channelCount},set channelCount(t){o.channelCount!==t&&(l&&c(),{connectGraph:h,disconnectGraph:c}=f(e,t,o,a,r),l&&h()),o.channelCount=t},get channelCountMode(){return o.channelCountMode},set channelCountMode(t){if("clamped-max"===t||"max"===t)throw p();o.channelCountMode=t},get channelInterpretation(){return o.channelInterpretation},set channelInterpretation(t){o.channelInterpretation=t},get context(){return o.context},get inputs(){return[o]},get numberOfInputs(){return o.numberOfInputs},get numberOfOutputs(){return o.numberOfOutputs},get pan(){return a.gain},addEventListener:(...t)=>o.addEventListener(t[0],t[1],t[2]),dispatchEvent:(...t)=>o.dispatchEvent(t[0]),removeEventListener:(...t)=>o.removeEventListener(t[0],t[1],t[2])};let l=!1;return d(Ne(t,r),()=>{h(),l=!0},()=>{c(),l=!1})}})(kl,Ve,je,nu,We,Tl),uu=(lo=lu,uo=We,(t,e)=>{const s=e.channelCountMode;if("clamped-max"===s)throw uo();if(void 0===t.createStereoPanner)return lo(t,e);t=t.createStereoPanner();return Oe(t,e),Ee(t,e,"pan"),Object.defineProperty(t,"channelCountMode",{get:()=>s,set:t=>{if(t!==s)throw uo()}}),t}),pu=(ro=dl,ao=Jt,ho=_l,()=>{const i=new WeakMap;return{render(t,e){var s=i.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=ao(t);var n=Dt(s,e);if(!n){const ro={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,pan:s.pan.value};s=oo(e,ro)}return i.set(e,s),n?await ro(e,t.pan,s.pan):await ho(e,t.pan,s.pan),Qt(s)?await co(t,e,s.inputs[0]):await co(t,e,s),s})(t,e)}}}),du=(Jc=Cs,to=gl,eo=oo=uu,so=pu,class extends Jc{constructor(t,e){var s=no(t),e={...Ze,...e},e=eo(s,e),s=io(s);super(t,!1,e,s?so():null),this._pan=to(this,s,e.pan)}get pan(){return this._pan}}),fu=(Jr=Jt,Kr=co=_s,()=>{const n=new WeakMap;return{render(t,e){var s=n.get(e);return void 0!==s?Promise.resolve(s):(async(t,e)=>{let s=Jr(t);if(!Dt(s,e)){const Jr={channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation,curve:s.curve,oversample:s.oversample};s=Hr(e,Jr)}return n.set(e,s),Qt(s)?await Kr(t,e,s.inputs[0]):await Kr(t,e,s),s})(t,e)}}}),_u=(Jc=Cs,Gr=be,Qr=Hr=nu,Zr=fu,Xr=no=gs,Yr=io=ys,$r=wl,class extends Jc{constructor(t,e){var s=Xr(t),e={...Xe,...e},e=Qr(s,e);super(t,!0,e,Yr(s)?Zr():null),this._isCurveNullified=!1,this._nativeWaveShaperNode=e,$r(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(t){if(null===t)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(t.length<2)throw Gr();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=t}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(t){this._nativeWaveShaperNode.oversample=t}}),mu=null!==(Jc=ps)&&Jc.isSecureContext,gu=(Ur=ps,(t,e,s)=>{Object.defineProperties(Ur,{currentFrame:{configurable:!0,get:()=>Math.round(t*e)},currentTime:{configurable:!0,get:()=>t}});try{return s()}finally{null!==Ur&&(delete Ur.currentFrame,delete Ur.currentTime)}}),vu=new WeakMap,yu=(Wr=vu,Br=vs,t=>{let e=Wr.get(t);if(void 0!==e)return e;if(null===Br)throw new Error("Missing the native OfflineAudioContext constructor.");return e=new Br(1,1,44100),Wr.set(t,e),e}),xu=mu?((r,o,a,l,u,p,d,f,_,m,g,v,y)=>{let x=0;return(e,s,h={credentials:"omit"})=>{const t=g.get(e);if(void 0!==t&&t.has(s))return Promise.resolve();const n=m.get(e);if(void 0!==n){const r=n.get(s);if(void 0!==r)return r}const c=p(e),i=void 0===c.audioWorklet?u(s).then(([t,e])=>{var[t,e]=mt(t,e);return a(`${t};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${e}\n})})(window,'_AWGS')`)}).then(()=>{const t=y._AWGS.pop();if(void 0===t)throw new SyntaxError;l(c.currentTime,c.sampleRate,()=>t(class{},void 0,(t,e)=>{if(""===t.trim())throw o();const s=pt.get(c);if(void 0!==s){if(s.has(t))throw o();vt(e),gt(e.parameterDescriptors),s.set(t,e)}else vt(e),gt(e.parameterDescriptors),pt.set(c,new Map([[t,e]]))},c.sampleRate,void 0,void 0))}):Promise.all([u(s),Promise.resolve(r(v,v))]).then(([[t,e],s])=>{const n=x+1;x=n;const[i,r]=mt(t,e),o=new Blob([`${i};((AudioWorkletProcessor,registerProcessor)=>{${r}\n})(${s?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${s?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${s?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${n}',class extends AudioWorkletProcessor{process(){return !1}})`],{type:"application/javascript; charset=utf-8"}),a=URL.createObjectURL(o);return c.audioWorklet.addModule(a,h).then(()=>{if(f(c))return c;const t=d(c);return t.audioWorklet.addModule(a,h).then(()=>t)}).then(t=>{if(null===_)throw new SyntaxError;try{new _(t,`__sac${n}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(a))});return void 0===n?m.set(e,new Map([[s,i]])):n.set(s,i),i.then(()=>{const t=g.get(e);void 0===t?g.set(e,new Set([s])):t.add(s)}).finally(()=>{const t=m.get(e);void 0!==t&&t.delete(s)}),i}})(us,We,(zr=ps,i=>new Promise((t,r)=>{if(null!==zr){const e=zr.document.head;if(null===e)r(new SyntaxError);else{const s=zr.document.createElement("script"),n=new Blob([i],{type:"application/javascript"}),o=URL.createObjectURL(n),a=zr.onerror,h=()=>{zr.onerror=a,URL.revokeObjectURL(o)};zr.onerror=(t,e,s,n,i)=>e===o||e===zr.location.href&&1===s&&1===n?(h(),r(i),!1):null!==a?a(t,e,s,n,i):void 0,s.onerror=()=>{h(),r(new SyntaxError)},s.onload=()=>{h(),t()},s.src=o,s.type="module",e.appendChild(s)}}else r(new SyntaxError)})),gu,async t=>{try{const e=await fetch(t);if(e.ok)return[await e.text(),e.url]}catch{}throw new DOMException("","AbortError")},gs,yu,ys,As,new WeakMap,new WeakMap,(jr=As,Lr=vs,async()=>{if(null===jr)return!0;if(null===Lr)return!1;const t=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),e=new Lr(1,128,44100),s=URL.createObjectURL(t);let n=!1,i=!1;try{await e.audioWorklet.addModule(s);const Lr=new jr(e,"a",{numberOfOutputs:0}),t=e.createOscillator();Lr.port.onmessage=()=>n=!0,Lr.onprocessorerror=()=>i=!0,t.connect(Lr),t.start(0),await e.startRendering()}catch{}finally{URL.revokeObjectURL(s)}return n&&!i}),ps):void 0,wu=(Nr=Ts,Pr=ys,t=>Nr(t)||Pr(t)),bu=(Dr=al,Or=us,Mr=new WeakSet,Rr=wu,qr=Ot,Fr=Ce,Ir=hl,Vr=cl,(t,r)=>{const o=Rr(t)?t:Er(t);if(Mr.has(r)){const Dr=new DOMException("","DataCloneError");return Promise.reject(Dr)}try{Mr.add(r)}catch{}return Or(Fr,()=>Fr(o))?o.decodeAudioData(r).then(t=>(ge(r).catch(()=>{}),Or(qr,()=>qr(t))||Vr(t),Dr.add(t),t)):new Promise((e,s)=>{const n=async()=>{try{await ge(r)}catch{}},i=t=>{s(t),n()};try{o.decodeAudioData(r,t=>{"function"!=typeof t.copyFromChannel&&(Ir(t),Et(t)),Dr.add(t),n().then(()=>e(t))},t=>{i(null===t?new DOMException("","EncodingError"):t)})}catch(t){i(t)}})}),Tu=(cr=xu,lr=ol,ur=ll,pr=vl,dr=bl,fr=Cl,_r=Ol,mr=ql,gr=Vl,vr=bu,yr=Pl,xr=zl,wr=Bl,br=Xl,Tr=tu,Sr=au,kr=cu,Ar=du,Cr=_u,class extends Hl{constructor(t,e){super(t,e),this._nativeContext=t,this._audioWorklet=void 0===cr?void 0:{addModule:(t,e)=>cr(this,t,e)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new lr(this)}createBiquadFilter(){return new dr(this)}createBuffer(t,e,s){return new ur({length:e,numberOfChannels:t,sampleRate:s})}createBufferSource(){return new pr(this)}createChannelMerger(t=6){return new fr(this,{numberOfInputs:t})}createChannelSplitter(t=6){return new _r(this,{numberOfOutputs:t})}createConstantSource(){return new mr(this)}createConvolver(){return new gr(this)}createDelay(t=1){return new yr(this,{maxDelayTime:t})}createDynamicsCompressor(){return new xr(this)}createGain(){return new wr(this)}createIIRFilter(t,e){return new br(this,{feedback:e,feedforward:t})}createOscillator(){return new Tr(this)}createPanner(){return new Sr(this)}createPeriodicWave(t,e,s={disableNormalization:!1}){return new kr(this,{...s,imag:e,real:t})}createStereoPanner(){return new Ar(this)}createWaveShaper(){return new Cr(this)}decodeAudioData(t,e,s){return vr(this._nativeContext,t).then(t=>("function"==typeof e&&e(t),t),t=>{throw"function"==typeof s&&s(t),t})}}),Su=class extends Cs{constructor(t,e){const s=ar(t),n=s.createMediaElementSource(e.mediaElement);if(hr(s))throw TypeError();super(t,!0,n,null),this._nativeMediaElementAudioSourceNode=n}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},ku=class extends Cs{constructor(t,e){var s=rr(t);if(or(s))throw new TypeError;e=((t,e)=>{t=t.createMediaStreamDestination();return Oe(t,e),1===t.numberOfOutputs&&Object.defineProperty(t,"numberOfOutputs",{get:()=>0}),t})(s,{...Ae,...e});super(t,!1,e,null),this._nativeMediaStreamAudioDestinationNode=e}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},Au=class extends Cs{constructor(t,e){var s=nr(t),e=((t,{mediaStream:e})=>{const s=e.getAudioTracks();s.sort((t,e)=>t.ide.id?1:0);var n=s.slice(0,1),n=t.createMediaStreamSource(new MediaStream(n));return Object.defineProperty(n,"mediaStream",{value:e}),n})(s,e);if(ir(s))throw new TypeError;super(t,!0,e,null),this._nativeMediaStreamAudioSourceNode=e}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},Cu=(er=be,sr=ir=or=hr=ys,(t,{mediaStreamTrack:e})=>{if("function"==typeof t.createMediaStreamTrackSource)return t.createMediaStreamTrackSource(e);var s=new MediaStream([e]),s=t.createMediaStreamSource(s);if("audio"!==e.kind)throw er();if(sr(t))throw new TypeError;return s}),Du=(ol=Cs,Ki=Cu,tr=nr=rr=ar=Er=gs,class extends ol{constructor(t,e){var s=tr(t);super(t,!0,Ki(s,e),null)}}),Ou=(ol=Tu,Gi=be,Qi=We,Zi=()=>new DOMException("","UnknownError"),Xi=Su,Yi=ku,$i=Au,Hi=Du,Ji=bs,class extends ol{constructor(t={}){if(null===Ji)throw new Error("Missing the native AudioContext constructor.");let e;try{e=new Ji(t)}catch(t){if(12===t.code&&"sampleRate is not in range"===t.message)throw Qi();throw t}if(null===e)throw Zi();if(void 0!==(n=t.latencyHint)&&"number"!=typeof n&&("string"!=typeof n||"balanced"!==n&&"interactive"!==n&&"playback"!==n))throw new TypeError(`The provided value '${t.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(void 0!==t.sampleRate&&e.sampleRate!==t.sampleRate)throw Qi();super(e,2);var s=t["latencyHint"],n=e["sampleRate"];if(this._baseLatency="number"==typeof e.baseLatency?e.baseLatency:"balanced"===s?512/n:"interactive"===s||void 0===s?256/n:"playback"===s?1024/n:128*Math.max(2,Math.min(128,Math.round(s*n/128)))/n,this._nativeAudioContext=e,"webkitAudioContext"===Ji.name?(this._nativeGainNode=e.createGain(),this._nativeOscillatorNode=e.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(e.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,"running"===e.state){this._state="suspended";const t=()=>{"suspended"===this._state&&(this._state=null),e.removeEventListener("statechange",t)};e.addEventListener("statechange",t)}}get baseLatency(){return this._baseLatency}get state(){return null!==this._state?this._state:this._nativeAudioContext.state}close(){return"closed"===this.state?this._nativeAudioContext.close().then(()=>{throw Gi()}):("suspended"===this._state&&(this._state=null),this._nativeAudioContext.close().then(()=>{null!==this._nativeGainNode&&null!==this._nativeOscillatorNode&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),Lt(this)}))}createMediaElementSource(t){return new Xi(this,{mediaElement:t})}createMediaStreamDestination(){return new Yi(this)}createMediaStreamSource(t){return new $i(this,{mediaStream:t})}createMediaStreamTrackSource(t){return new Hi(this,{mediaStreamTrack:t})}resume(){return"suspended"===this._state?new Promise((t,e)=>{const s=()=>{this._nativeAudioContext.removeEventListener("statechange",s),"running"===this._nativeAudioContext.state?t():this.resume().then(t,e)};this._nativeAudioContext.addEventListener("statechange",s)}):this._nativeAudioContext.resume().catch(t=>{if(void 0===t||15===t.code)throw Gi();throw t})}suspend(){return this._nativeAudioContext.suspend().catch(t=>{if(void 0===t)throw Gi();throw t})}}),Mu=(Ui=$l,t=>{t=Ui.get(t);if(void 0===t)throw new Error("The context has no set of AudioWorkletNodes.");return t}),Eu=(t,e)=>{Bi(t).add(e)},Ru=(Wi=Mt,(t,e,s=0,n=0)=>{const i=t[s];if(void 0===i)throw Wi();return ie(e)?i.connect(e,0,n):i.connect(e,0)}),qu=(zi=Bi=Mu,(t,e)=>{zi(t).delete(e)}),Fu=(Li=Mt,(t,e,s,n=0)=>void 0===e?t.forEach(t=>t.disconnect()):"number"==typeof e?ye(Li,t,e).disconnect():ie(e)?void 0===s?t.forEach(t=>t.disconnect(e)):void 0===n?ye(Li,t,s).disconnect(e,0):ye(Li,t,s).disconnect(e,0,n):void 0===s?t.forEach(t=>t.disconnect(e)):ye(Li,t,s).disconnect(e,0)),Iu=new WeakMap,Vu=(Pi=Iu,ji=yt,t=>ji(Pi,t)),Nu=(Ai=Mt,Ci=be,Ri=ze,Vi=Vu,(o,t,e,a)=>{if(0===a.numberOfInputs&&0===a.numberOfOutputs)throw qi();const h=Array.isArray(a.outputChannelCount)?a.outputChannelCount:Array.from(a.outputChannelCount);if(h.some(t=>t<1))throw qi();if(h.length!==a.numberOfOutputs)throw Ai();if("explicit"!==a.channelCountMode)throw qi();const c=a.channelCount*a.numberOfInputs,s=h.reduce((t,e)=>t+e,0),n=void 0===e.parameterDescriptors?0:e.parameterDescriptors.length;if(6void 0===ki?0:ki},maxValue:{get:()=>void 0===Ai?Ft:Ai},minValue:{get:()=>void 0===Ci?qt:Ci}}),p.push(Oi)}const d=Di(o,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,c+n)}),f=Fe(t,o.sampleRate),_=Ri(o,f,c+n,Math.max(1,s)),r=Oi(o,{channelCount:Math.max(1,s),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,s)}),m=[];for(let t=0;t{const s=p[e];return s.connect(d,0,c+e),s.start(0),[t,s.offset]}));d.connect(_);let v=a.channelInterpretation,y=null;const x=0===a.numberOfOutputs?[_]:m,w={get bufferSize(){return f},get channelCount(){return a.channelCount},set channelCount(t){throw Ci()},get channelCountMode(){return a.channelCountMode},set channelCountMode(t){throw Ci()},get channelInterpretation(){return v},set channelInterpretation(t){for(const e of l)e.channelInterpretation=t;v=t},get context(){return _.context},get inputs(){return l},get numberOfInputs(){return a.numberOfInputs},get numberOfOutputs(){return a.numberOfOutputs},get onprocessorerror(){return y},set onprocessorerror(t){"function"==typeof y&&w.removeEventListener("processorerror",y),y="function"==typeof t?t:null,"function"==typeof y&&w.addEventListener("processorerror",y)},get parameters(){return g},get port(){return i.port2},addEventListener:(...t)=>_.addEventListener(t[0],t[1],t[2]),connect:ki.bind(null,x),disconnect:Fi.bind(null,x),dispatchEvent:(...t)=>_.dispatchEvent(t[0]),removeEventListener:(...t)=>_.removeEventListener(t[0],t[1],t[2])},b=new Map;var T,S;i.port1.addEventListener=(T=i.port1.addEventListener,(...t)=>{if("message"===t[0]){const s="function"==typeof t[1]?t[1]:"object"==typeof t[1]&&null!==t[1]&&"function"==typeof t[1].handleEvent?t[1].handleEvent:null;var e;null!==s&&(void 0!==(e=b.get(t[1]))?t[1]=e:(t[1]=t=>{Ii(o.currentTime,o.sampleRate,()=>s(t))},b.set(s,t[1])))}return T.call(i.port1,t[0],t[1],t[2])}),i.port1.removeEventListener=(S=i.port1.removeEventListener,(...t)=>{var e;return"message"!==t[0]||void 0!==(e=b.get(t[1]))&&(b.delete(t[1]),t[1]=e),S.call(i.port1,t[0],t[1],t[2])});let k=null;Object.defineProperty(i.port1,"onmessage",{get:()=>k,set:t=>{"function"==typeof k&&i.port1.removeEventListener("message",k),k="function"==typeof t?t:null,"function"==typeof k&&(i.port1.addEventListener("message",k),i.port1.start())}}),e.prototype.port=i.port1;let A=null;const C=((t,e,s,n)=>{let i=dt.get(t);void 0===i&&(i=new WeakMap,dt.set(t,i));t=(async()=>{var t;return new s((t=n,await new Promise((e,s)=>{const{port1:n,port2:i}=new MessageChannel;n.onmessage=({data:t})=>{n.close(),i.close(),e(t)},n.onmessageerror=({data:t})=>{n.close(),i.close(),s(t)},i.postMessage(t)})))})();return i.set(e,t),t})(o,w,e,a);C.then(t=>A=t);const D=ue(a.numberOfInputs,a.channelCount),O=ue(a.numberOfOutputs,h),M=void 0===e.parameterDescriptors?[]:e.parameterDescriptors.reduce((t,{name:e})=>({...t,[e]:new Float32Array(128)}),{});let E=!0;const R=()=>{0{if(null!==A){const r=Vi(w);for(let n=0;n{ce(s,M,t,c+e,n)});for(let e=0;e{if(0t.every(t=>0===t))&&(1===s?q.delete(e):q.set(e,s-1)),t)}),t=Ii(o.currentTime+n/o.sampleRate,o.sampleRate,()=>A.process(s,O,M));E=t;for(let e=0,s=0;e_.connect(I).connect(o.destination),N=()=>{_.disconnect(I),I.disconnect()};return V(),Ni(w,()=>{if(E){N(),0{E&&(V(),R()),F=!1})}),Pu=(xi=be,wi=Nu,Ti=qi=We,Si=Ni=Tl,(t,e,s,n,i,r)=>{if(null!==s)try{const wi=new s(t,n,r),Ti=new Map;let e=null;if(Object.defineProperties(wi,{channelCount:{get:()=>r.channelCount,set:()=>{throw xi()}},channelCountMode:{get:()=>"explicit",set:()=>{throw xi()}},onprocessorerror:{get:()=>e,set:t=>{"function"==typeof e&&wi.removeEventListener("processorerror",e),e="function"==typeof t?t:null,"function"==typeof e&&wi.addEventListener("processorerror",e)}}}),wi.addEventListener=(a=wi.addEventListener,(...e)=>{if("processorerror"===e[0]){const wi="function"==typeof e[1]?e[1]:"object"==typeof e[1]&&null!==e[1]&&"function"==typeof e[1].handleEvent?e[1].handleEvent:null;var t;null!==wi&&(void 0!==(t=Ti.get(e[1]))?e[1]=t:(e[1]=t=>{"error"===t.type?(Object.defineProperties(t,{type:{value:"processorerror"}}),wi(t)):wi(new ErrorEvent(e[0],{...t}))},Ti.set(wi,e[1])))}return a.call(wi,"error",e[1],e[2]),a.call(wi,...e)}),wi.removeEventListener=(o=wi.removeEventListener,(...t)=>{if("processorerror"===t[0]){const wi=Ti.get(t[1]);void 0!==wi&&(Ti.delete(t[1]),t[1]=wi)}return o.call(wi,"error",t[1],t[2]),o.call(wi,t[0],t[1],t[2])}),0===r.numberOfOutputs)return wi;{const xi=bi(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return wi.connect(xi).connect(t.destination),Si(wi,()=>xi.disconnect(),()=>xi.connect(t.destination))}}catch(t){if(11===t.code)throw Ti();throw t}var o,a;if(void 0===i)throw Ti();return(t=>{const e=(new MessageChannel)["port1"];try{e.postMessage(t)}finally{e.close()}})(r),wi(t,e,i,r)}),ju=(ii=dl,ri=ki=Ru,oi=fl,ai=Di=kl,hi=Oi=Ve,ci=Mi=El,li=bi=Ei=je,ui=qu,pi=Fi=Fu,di=Ii=gu,fi=Jt,_i=As,mi=vs,gi=_l,vi=_s,yi=Gl,(r,a,h)=>{const c=new WeakMap;let l=null;return{render(t,e){ui(e,t);var s=c.get(e);return void 0!==s?Promise.resolve(s):(async(o,e)=>{let t=fi(o),s=null;const n=Dt(t,e),i=Array.isArray(a.outputChannelCount)?a.outputChannelCount:Array.from(a.outputChannelCount);if(null===_i){const ii=i.reduce((t,e)=>t+e,0),oi=hi(e,{channelCount:Math.max(1,ii),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ii)}),ci=[];for(let t=0;t{const s=new mi(oi,128*Math.ceil(o.context.length/128),e.sampleRate),n=[],i=[];for(let t=0;t{var e=ci(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:t.value});return await gi(s,t,e.offset),e})),r=ai(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,ii+ri)});for(let e=0;evi(o,s,t))),yi(s)};l=(async(t,s,e,i,r,o,a)=>{const h=null===s?128*Math.ceil(t.context.length/128):s.length,c=i.channelCount*i.numberOfInputs,n=r.reduce((t,e)=>t+e,0),l=0===n?null:e.createBuffer(n,h,e.sampleRate);if(void 0===o)throw new Error("Missing the processor constructor.");const u=Nt(t),p=await((t,e)=>{t=yt(dt,t),e=Jt(e);return yt(t,e)})(e,t),d=ue(i.numberOfInputs,i.channelCount),f=ue(i.numberOfOutputs,r),_=Array.from(t.parameters.keys()).reduce((t,e)=>({...t,[e]:new Float32Array(128)}),{});for(let n=0;n{ce(s,_,t,c+e,n)});for(let e=0;e0===u.activeInputs[e].size?[]:t),s=a(n/e.sampleRate,e.sampleRate,()=>p.process(t,f,_));if(null!==l)for(let e=0,s=0;eni.get(t)),zu=(si=Iu,(t,e)=>{si.set(t,e)}),Wu=mu?(Gn=Eu,Qn=gl,Zn=ju,Xn=Pu,Yn=Nt,$n=Lu,Hn=gs,Jn=ys,Kn=As,ti=zu,ei=rs,class extends Cs{constructor(t,e,s){var n;const i=Hn(t),r=Jn(i),o={...s={...he,...s},outputChannelCount:void 0!==s.outputChannelCount?s.outputChannelCount:1===s.numberOfInputs&&1===s.numberOfOutputs?[s.channelCount]:Array.from({length:s.numberOfOutputs},()=>1)};(t=>{const{port1:e,port2:s}=new MessageChannel;try{e.postMessage(t)}finally{e.close(),s.close()}})(o);const a=pt.get(i),h=null==a?void 0:a.get(e),c=!r&&"closed"===i.state&&null!==(n=$n(i))&&void 0!==n?n:i,l=Xn(c,r?null:t.baseLatency,Kn,e,h,o);super(t,!0,l,r?Zn(e,o,h):null);const u=[];l.parameters.forEach((t,e)=>{t=Qn(this,r,t);u.push([e,t])}),this._nativeAudioWorkletNode=l,this._onprocessorerror=null,this._parameters=new ae(u),r&&Gn(i,this);var e=Yn(this)["activeInputs"];ti(l,e)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(t){var e="function"==typeof t?ei(this,t):null;this._nativeAudioWorkletNode.onprocessorerror=e;var s=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=null!==s&&s===e?t:s}get parameters(){return null===this._parameters?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}}):void 0,Bu=(Bn=We,Un=vs,(t,e,s)=>{if(null===Un)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new Un(t,e,s)}catch(t){if("SyntaxError"===t.name)throw Bn();throw t}}),Uu=(In=al,Vn=us,Nn=fs,Pn=Mu,jn=Gl,Ln=Ot,zn=hl,Wn=cl,(t,e)=>Nn(t).render(t,e).then(()=>Promise.all(Array.from(Pn(e)).map(t=>Nn(t).render(t,e)))).then(()=>jn(e)).then(t=>("function"!=typeof t.copyFromChannel?(zn(t),Et(t)):Vn(Ln,()=>Ln(t))||Wn(t),In.add(t),t))),Gu=(En=us,Rn=be,qn=Bu,Fn=Uu,class extends Tu{constructor(t,e,s){let n;if("number"==typeof t&&void 0!==e&&void 0!==s)n={length:e,numberOfChannels:t,sampleRate:s};else{if("object"!=typeof t)throw new Error("The given parameters are not valid.");n=t}const{length:i,numberOfChannels:r,sampleRate:o}={...Be,...n},a=qn(r,i,o);En(Ce,()=>Ce(a))||a.addEventListener("statechange",(()=>{let e=0;const s=t=>{"running"===this._state&&(0{this._state=null,Lt(this)}))}_waitForThePromiseToSettle(t){null===this._state?this._nativeOfflineAudioContext.dispatchEvent(t):setTimeout(()=>this._waitForThePromiseToSettle(t))}}),Qu=(On=ct,Mn=Ts,t=>{var e=On.get(t);return Mn(e)||Mn(t)}),Zu=(Cn=ot,Dn=Ss,t=>Cn.has(t)||Dn(t)),Xu=(kn=ht,An=ks,t=>kn.has(t)||An(t)),Yu=(Tn=ct,Sn=ys,t=>{var e=Tn.get(t);return Sn(e)||Sn(t)}),$u=()=>(async(t,e,s,n,i,r,o,a,h,c,l,u,p,d,f,_)=>!!(t(e,e)&&t(s,s)&&t(i,i)&&t(r,r)&&t(a,a)&&t(h,h)&&t(c,c)&&t(l,l)&&t(u,u)&&t(p,p)&&t(d,d))&&(await Promise.all([t(n,n),t(o,o),t(f,f),t(_,_)])).every(t=>t))(us,(s=>()=>{if(null===s)return!1;const t=new s(1,1,44100).createBuffer(1,1,44100);if(void 0===t.copyToChannel)return!0;var e=new Float32Array(2);try{t.copyFromChannel(e,0,0)}catch{return!1}return!0})(vs),(s=>()=>{if(null===s)return!1;if(void 0!==s.prototype&&void 0!==s.prototype.close)return!0;const t=new s,e=void 0!==t.close;try{t.close()}catch{}return e})(bs),(t=>()=>{if(null===t)return Promise.resolve(!1);const i=new t(1,1,44100);return new Promise(e=>{let s=!0;var t=t=>{s&&(s=!1,i.startRendering(),e(t instanceof TypeError))};let n;try{n=i.decodeAudioData(null,()=>{},t)}catch(e){t(e)}void 0!==n&&n.catch(t)})})(vs),(e=>()=>{if(null===e)return!1;let t;try{t=new e({latencyHint:"balanced"})}catch{return!1}return t.close(),!0})(bs),(s=>()=>{if(null===s)return!1;const t=new s(1,1,44100).createGain(),e=t.connect(t)===t;return t.disconnect(t),e})(vs),((r,o)=>async()=>{if(null===r)return!0;if(null===o)return!1;const t=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new MessageChannel,e=new o(1,128,44100),n=URL.createObjectURL(t);let i=!1;try{await e.audioWorklet.addModule(n);const o=new r(e,"a",{numberOfOutputs:0}),t=e.createOscillator();await new Promise(t=>{o.port.onmessage=()=>t(),o.port.postMessage(s.port2,[s.port2])}),o.port.onmessage=()=>i=!0,t.connect(o),t.start(0),await e.startRendering(),i=await new Promise(e=>{s.port1.onmessage=({data:t})=>e(1===t),s.port1.postMessage(0)})}catch{}finally{s.port1.close(),URL.revokeObjectURL(n)}return i})(As,vs),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createChannelMerger();if("max"===t.channelCountMode)return!0;try{t.channelCount=2}catch{return!0}return!1})(vs),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100);return void 0===t.createConstantSource||t.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY})(vs),(s=>()=>{if(null===s)return!1;const t=new s(1,1,44100),e=t.createConvolver();e.buffer=t.createBuffer(1,1,t.sampleRate);try{e.buffer=t.createBuffer(1,1,t.sampleRate)}catch{return!1}return!0})(vs),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createConvolver();try{t.channelCount=1}catch{return!1}return!0})(vs),ss,(t=>()=>null!==t&&t.hasOwnProperty("isSecureContext"))(ps),(e=>()=>{if(null===e)return!1;const t=new e;try{return t.createMediaStreamSource(new MediaStream),!1}catch(t){return!0}finally{t.close()}})(bs),(n=>()=>{if(null===n)return Promise.resolve(!1);const t=new n(1,1,44100);if(void 0===t.createStereoPanner)return Promise.resolve(!0);if(void 0===t.createConstantSource)return Promise.resolve(!0);const e=t.createConstantSource(),s=t.createStereoPanner();return e.channelCount=1,e.offset.value=1,s.channelCount=1,e.start(),e.connect(s).connect(t.destination),t.startRendering().then(t=>1!==t.getChannelData(0)[0])})(vs),ns);function Hu(t){return void 0===t}function Ju(t){return!Hu(t)}function Ku(t){return"function"==typeof t}function tp(t){return"number"==typeof t}function ep(t){return"[object Object]"===Object.prototype.toString.call(t)&&t.constructor===Object}function sp(t){return"boolean"==typeof t}function np(t){return Array.isArray(t)}function ip(t){return"string"==typeof t}function rp(t){return ip(t)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(t)}function op(t,e){if(!t)throw new Error(e)}function ap(t,e,s=1/0){if(!(e<=t&&t<=s))throw new RangeError(`Value must be within [${e}, ${s}], got: ${t}`)}function hp(t){t.isOffline||"running"===t.state||_p('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let cp=!1,lp=!1;function up(t){cp=t}function pp(t){Hu(t)&&cp&&!lp&&(lp=!0,_p("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}let dp=console;function fp(...t){dp.log(...t)}function _p(...t){dp.warn(...t)}const mp="object"==typeof self?self:null,gp=mp&&(mp.hasOwnProperty("AudioContext")||mp.hasOwnProperty("webkitAudioContext"));function vp(t,e,s,n){var i,r=arguments.length,o=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,s):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,n);else for(var a=t.length-1;0<=a;a--)(i=t[a])&&(o=(r<3?i(o):3{this._createTimeout(),this._callback()},1e3*this._updateInterval)}_createClock(){if("worker"===this._type)try{this._createWorker()}catch(t){this._type="timeout",this._createClock()}else"timeout"===this._type&&this._createTimeout()}_disposeClock(){this._timeout&&clearTimeout(this._timeout),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(t){this._updateInterval=Math.max(t,128/44100),"worker"===this._type&&this._worker.postMessage(Math.max(1e3*t,1))}get type(){return this._type}set type(t){this._disposeClock(),this._type=t,this._createClock()}dispose(){this._disposeClock()}}function wp(t){return Xu(t)}function bp(t){return Zu(t)}function Tp(t){return Yu(t)}function Sp(t){return Qu(t)}function kp(t){return t instanceof ll}function Ap(t,...e){if(!e.length)return t;var s,n,i=e.shift();if(ep(t)&&ep(i))for(const e in i)s=e,n=i[e],"value"===s||wp(n)||bp(n)||kp(n)?t[e]=i[e]:ep(i[e])?(t[e]||Object.assign(t,{[e]:{}}),Ap(t[e],i[e])):Object.assign(t,{[e]:i[e]});return Ap(t,...e)}function Cp(e,t,s=[],n){const i={},r=Array.from(t);if(ep(r[0])&&n&&!Reflect.has(r[0],n)&&(Object.keys(r[0]).some(t=>Reflect.has(e,t))||(Ap(i,{[n]:r[0]}),s.splice(s.indexOf(n),1),r.shift())),1===r.length&&ep(r[0]))Ap(i,r[0]);else for(let t=0;t{Reflect.has(e,t)&&delete e[t]}),e}class Mp{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...t){(this.debug||mp&&this.toString()===mp.TONE_DEBUG_CLASS)&&fp(this,...t)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}}Mp.version=s;const Ep=1e-6;function Rp(t,e){return t>e+Ep}function qp(t,e){return Rp(t,e)||Ip(t,e)}function Fp(t,e){return t+Epthis.memory){const t=this.length-this.memory;this._timeline.splice(0,t)}return this}remove(t){t=this._timeline.indexOf(t);return-1!==t&&this._timeline.splice(t,1),this}get(t,e="time"){e=this._search(t,e);return-1!==e?this._timeline[e]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(t,e="time"){e=this._search(t,e);return e+1=t;)s--;return this._iterate(e,s+1),this}forEachAtTime(s,n){var i=this._search(s);if(-1!==i&&Ip(this._timeline[i].time,s)){let e=i;for(let t=i;0<=t&&Ip(this._timeline[t].time,s);t--)e=t;this._iterate(t=>{n(t)},e,i)}return this}dispose(){return super.dispose(),this._timeline=[],this}}const Pp=[];function jp(t){Pp.push(t)}const Lp=[];function zp(t){Lp.push(t)}class Wp extends Mp{constructor(){super(...arguments),this.name="Emitter"}on(t,e){return t.split(/\W+/).forEach(t=>{Hu(this._events)&&(this._events={}),this._events.hasOwnProperty(t)||(this._events[t]=[]),this._events[t].push(e)}),this}once(e,s){const n=(...t)=>{s(...t),this.off(e,n)};return this.on(e,n),this}off(t,s){return t.split(/\W+/).forEach(t=>{if(Hu(this._events)&&(this._events={}),this._events.hasOwnProperty(t))if(Hu(s))this._events[t]=[];else{const e=this._events[t];for(let t=e.length-1;0<=t;t--)e[t]===s&&e.splice(t,1)}}),this}emit(t,...s){if(this._events&&this._events.hasOwnProperty(t)){const n=this._events[t].slice(0);for(let t=0,e=n.length;t{var e=Object.getOwnPropertyDescriptor(Wp.prototype,t);Object.defineProperty(s.prototype,t,e)})}dispose(){return super.dispose(),this._events=void 0,this}}class Bp extends Wp{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}}class Up extends Bp{constructor(){super(),this.name="Context",this._constants=new Map,this._timeouts=new Np,this._timeoutIds=0,this._initialized=!1,this.isOffline=!1,this._workletModules=new Map;var t,e=Cp(Up.getDefaults(),arguments,["context"]);e.context?this._context=e.context:this._context=(t={latencyHint:e.latencyHint},new Ou(t)),this._ticker=new xp(this.emit.bind(this,"tick"),e.clockSource,e.updateInterval),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this._setLatencyHint(e.latencyHint),this.lookAhead=e.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){var e;return this._initialized||(e=this,Pp.forEach(t=>t(e)),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(t,e,s){return this._context.createBuffer(t,e,s)}createChannelMerger(t){return this._context.createChannelMerger(t)}createChannelSplitter(t){return this._context.createChannelSplitter(t)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(t){return this._context.createDelay(t)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(t,e){return this._context.createIIRFilter(t,e)}createPanner(){return this._context.createPanner()}createPeriodicWave(t,e,s){return this._context.createPeriodicWave(t,e,s)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(t){return op(Sp(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(t)}createMediaElementSource(t){return op(Sp(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(t)}createMediaStreamDestination(){return op(Sp(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(t){return this._context.decodeAudioData(t)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(t){op(!this._initialized,"The listener cannot be set after initialization."),this._listener=t}get transport(){return this.initialize(),this._transport}set transport(t){op(!this._initialized,"The transport cannot be set after initialization."),this._transport=t}get draw(){return this.initialize(),this._draw}set draw(t){op(!this._initialized,"Draw cannot be set after initialization."),this._draw=t}get destination(){return this.initialize(),this._destination}set destination(t){op(!this._initialized,"The destination cannot be set after initialization."),this._destination=t}createAudioWorkletNode(t,e){return s=this.rawContext,t=t,e=e,op(Ju(Wu),"This node only works in a secure context (https or localhost)"),new Wu(s,t,e);var s}addAudioWorkletModule(t,e){return yp(this,void 0,void 0,function*(){op(Ju(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletModules.has(e)||this._workletModules.set(e,this.rawContext.audioWorklet.addModule(t)),yield this._workletModules.get(e)})}workletsAreReady(){return yp(this,void 0,void 0,function*(){const e=[];this._workletModules.forEach(t=>e.push(t)),yield Promise.all(e)})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(t){this._ticker.updateInterval=t}get clockSource(){return this._ticker.type}set clockSource(t){this._ticker.type=t}get latencyHint(){return this._latencyHint}_setLatencyHint(t){let e=0;if(ip(this._latencyHint=t))switch(t){case"interactive":e=.1;break;case"playback":e=.5;break;case"balanced":e=.25}this.lookAhead=e,this.updateInterval=e/2}get rawContext(){return this._context}now(){return this._context.currentTime+this.lookAhead}immediate(){return this._context.currentTime}resume(){return Sp(this._context)?this._context.resume():Promise.resolve()}close(){return yp(this,void 0,void 0,function*(){var e;Sp(this._context)&&(yield this._context.close()),this._initialized&&(e=this,Lp.forEach(t=>t(e)))})}getConstant(e){if(this._constants.has(e))return this._constants.get(e);{const t=this._context.createBuffer(1,128,this._context.sampleRate),s=t.getChannelData(0);for(let t=0;tthis._constants[t].disconnect()),this}_timeoutLoop(){var t=this.now();let e=this._timeouts.peek();for(;this._timeouts.length&&e&&e.time<=t;)e.callback(),this._timeouts.shift(),e=this._timeouts.peek()}setTimeout(t,e){this._timeoutIds++;var s=this.now();return this._timeouts.add({callback:t,id:this._timeoutIds,time:s+e}),this._timeoutIds}clearTimeout(e){return this._timeouts.forEach(t=>{t.id===e&&this._timeouts.remove(t)}),this}clearInterval(t){return this.clearTimeout(t)}setInterval(e,s){const n=++this._timeoutIds,i=()=>{var t=this.now();this._timeouts.add({callback:()=>{e(),i()},id:n,time:t+s})};return i(),n}}function Gp(e,t){np(t)?t.forEach(t=>Gp(e,t)):Object.defineProperty(e,t,{enumerable:!0,writable:!1})}function Qp(e,t){np(t)?t.forEach(t=>Qp(e,t)):Object.defineProperty(e,t,{writable:!0})}const Zp=()=>{};class Xp extends Mp{constructor(){super(),this.name="ToneAudioBuffer",this.onload=Zp;var t=Cp(Xp.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=t.reverse,this.onload=t.onload,t.url&&kp(t.url)||t.url instanceof Xp?this.set(t.url):ip(t.url)&&this.load(t.url).catch(t.onerror)}static getDefaults(){return{onerror:Zp,onload:Zp,reverse:!1}}get sampleRate(){return(this._buffer||Jp()).sampleRate}set(t){return t instanceof Xp?t.loaded?this._buffer=t.get():t.onload=()=>{this.set(t),this.onload(this)}:this._buffer=t,this._reversed&&this._reverse(),this}get(){return this._buffer}load(e){return yp(this,void 0,void 0,function*(){var t=Xp.load(e).then(t=>{this.set(t),this.onload(this)});Xp.downloads.push(t);try{yield t}finally{const e=Xp.downloads.indexOf(t);Xp.downloads.splice(e,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(t){const e=np(t)&&0t/n),this.fromArray(e)}return this}toArray(e){if(tp(e))return this.getChannelData(e);if(1===this.numberOfChannels)return this.toArray(0);{const e=[];for(let t=0;tsetTimeout(t,1)))}})}render(e=!0){return yp(this,void 0,void 0,function*(){yield this.workletsAreReady(),yield this._renderClock(e);var t=yield this._context.startRendering();return new Xp(t)})}close(){return Promise.resolve()}}const $p=new class extends Bp{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(t,e,s){return{}}createChannelMerger(t){return{}}createChannelSplitter(t){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(t){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(t,e){return{}}createPanner(){return{}}createPeriodicWave(t,e,s){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(t){return{}}createMediaElementSource(t){return{}}createMediaStreamDestination(){return{}}decodeAudioData(t){return Promise.resolve({})}createAudioWorkletNode(t,e){return{}}get rawContext(){return{}}addAudioWorkletModule(t,e){return yp(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(t,e){return 0}clearTimeout(t){return this}setInterval(t,e){return 0}clearInterval(t){return this}getConstant(t){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(t){}get destination(){return{}}set destination(t){}now(){return 0}immediate(){return 0}};let Hp=$p;function Jp(){return Hp===$p&&gp&&Kp(new Up),Hp}function Kp(t,e=!1){e&&Hp.dispose(),Hp=Sp(t)?new Up(t):Tp(t)?new Yp(t):t}if(mp&&!mp.TONE_SILENCE_LOGGING){let t="v";"dev"===s&&(t="");const e=` * Tone.js ${t}${s} * `;console.log(`%c${e}`,"background: #000; color: #fff")}function td(t){return Math.pow(10,t/20)}function ed(t){return Math.log(t)/Math.LN10*20}function sd(t){return Math.pow(2,t/12)}let nd=440;function id(t){return Math.round(rd(t))}function rd(t){return 69+12*Math.log2(t/nd)}function od(t){return nd*Math.pow(2,(t-69)/12)}class ad extends Mp{constructor(t,e,s){super(),this.defaultUnits="s",this._val=e,this._units=s,this.context=t,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:t=>this._frequencyToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:t=>this._ticksToUnits(parseInt(t,10)),regexp:/^(\d+)i$/i},m:{method:t=>this._beatsToUnits(parseInt(t,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(t,e)=>{t=parseInt(t,10),e="."===e?1.5:1;return 1===t?this._beatsToUnits(this._getTimeSignature())*e:this._beatsToUnits(4/t)*e},regexp:/^(\d+)n(\.?)$/i},number:{method:t=>this._expressions[this.defaultUnits].method.call(this,t),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:t=>this._secondsToUnits(parseFloat(t)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:t=>parseInt(t,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:t=>{t=parseInt(t,10);return this._beatsToUnits(8/(3*Math.floor(t)))},regexp:/^(\d+)t$/i},tr:{method:(t,e,s)=>{let n=0;return t&&"0"!==t&&(n+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&"0"!==e&&(n+=this._beatsToUnits(parseFloat(e))),s&&"0"!==s&&(n+=this._beatsToUnits(parseFloat(s)/4)),n},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof ad&&this.fromType(this._val),Hu(this._val))return this._noArg();if(ip(this._val)&&Hu(this._units)){for(const t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(ep(this._val)){let t=0;for(const s in this._val){var e;Ju(this._val[s])&&(e=this._val[s],t+=new this.constructor(this.context,s).valueOf()*e)}return t}if(Ju(this._units)){const n=this._expressions[this._units],i=this._val.toString().trim().match(n.regexp);return i?n.method.apply(this,i.slice(1)):n.method.call(this,this._val)}return ip(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(t){return 1/t}_beatsToUnits(t){return 60/this._getBpm()*t}_secondsToUnits(t){return t}_ticksToUnits(t){return t*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(t){switch(this._units=void 0,this.defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi()}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return 1e3*this.toSeconds()}}class hd extends ad{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:t=>this._now()+new this.constructor(this.context,t).valueOf(),regexp:/^\+(.+)/},quantize:{method:t=>{t=new hd(this.context,t).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(t))},regexp:/^@(.+)/}})}quantize(t,e=1){var s=new this.constructor(this.context,t).valueOf(),t=this.valueOf();return t+(Math.round(t/s)*s-t)*e}toNotation(){const s=this.toSeconds(),e=["1m"];for(let t=1;t<9;t++){const n=Math.pow(2,t);e.push(n+"n."),e.push(n+"n"),e.push(n+"t")}e.push("0");let n=e[0],i=new hd(this.context,e[0]).toSeconds();return e.forEach(t=>{var e=new hd(this.context,t).toSeconds();Math.abs(e-s)this.transpose(t))}toMidi(){return id(this.valueOf())}toNote(){var t=this.toFrequency(),t=Math.log2(t/cd.A4);let e=Math.round(12*t)+57;const s=Math.floor(e/12);return s<0&&(e+=-12*s),ud[e%12]+s.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){var t=this._beatsToUnits(1),t=this.valueOf()/t;return Math.floor(t*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(t){return t}_ticksToUnits(t){return 1/(60*t/(this._getBpm()*this._getPPQ()))}_beatsToUnits(t){return 1/super._beatsToUnits(t)}_secondsToUnits(t){return 1/t}static mtof(t){return od(t)}static ftom(t){return id(t)}}const ld={cbbb:-3,cbb:-2,cb:-1,c:0,"c#":1,cx:2,"c##":2,"c###":3,"cx#":3,"c#x":3,dbbb:-1,dbb:0,db:1,d:2,"d#":3,dx:4,"d##":4,"d###":5,"dx#":5,"d#x":5,ebbb:1,ebb:2,eb:3,e:4,"e#":5,ex:6,"e##":6,"e###":7,"ex#":7,"e#x":7,fbbb:2,fbb:3,fb:4,f:5,"f#":6,fx:7,"f##":7,"f###":8,"fx#":8,"f#x":8,gbbb:4,gbb:5,gb:6,g:7,"g#":8,gx:9,"g##":9,"g###":10,"gx#":10,"g#x":10,abbb:6,abb:7,ab:8,a:9,"a#":10,ax:11,"a##":11,"a###":12,"ax#":12,"a#x":12,bbbb:8,bbb:9,bb:10,b:11,"b#":12,bx:13,"b##":13,"b###":14,"bx#":14,"b#x":14},ud=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];class pd extends hd{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}}class dd extends Mp{constructor(){super();var t=Cp(dd.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=t.context}static getDefaults(){return{context:Jp()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(t){return pp(t),new hd(this.context,t).toSeconds()}toFrequency(t){return new cd(this.context,t).toFrequency()}toTicks(t){return new pd(this.context,t).toTicks()}_getPartialProperties(e){const s=this.get();return Object.keys(s).forEach(t=>{Hu(e[t])&&delete s[t]}),s}get(){const s=this.constructor.getDefaults();return Object.keys(s).forEach(t=>{if(Reflect.has(this,t)){const e=this[t];Ju(e)&&Ju(e.value)&&Ju(e.setValueAtTime)?s[t]=e.value:e instanceof dd?s[t]=e._getPartialProperties(s[t]):np(e)||tp(e)||ip(e)||sp(e)?s[t]=e:delete s[t]}}),s}set(e){return Object.keys(e).forEach(t=>{Reflect.has(this,t)&&Ju(this[t])&&(this[t]&&Ju(this[t].value)&&Ju(this[t].setValueAtTime)?this[t].value!==e[t]&&(this[t].value=e[t]):this[t]instanceof dd?this[t].set(e[t]):this[t]=e[t])}),this}}class fd extends Np{constructor(t="stopped"){super(),this.name="StateTimeline",this._initial=t,this.setStateAtTime(this._initial,0)}getValueAtTime(t){t=this.get(t);return null!==t?t.state:this._initial}setStateAtTime(t,e,s){return ap(e,0),this.add(Object.assign({},s,{state:t,time:e})),this}getLastState(e,s){for(let t=this._search(s);0<=t;t--){const s=this._timeline[t];if(s.state===e)return s}}getNextState(e,t){const s=this._search(t);if(-1!==s)for(let t=s;t{"cancelScheduledValues"===t.type?e.cancelScheduledValues(t.time):"setTargetAtTime"===t.type?e.setTargetAtTime(t.value,t.time,t.constant):e[t.type](t.value,t.time)}),this}setParam(t){op(this._swappable,"The Param must be assigned as 'swappable' in the constructor");const e=this.input;return e.disconnect(this._param),this.apply(t),this._param=t,e.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(t,e,s,n,i){return s+(e-s)*Math.exp(-(i-t)/n)}_linearInterpolate(t,e,s,n,i){return e+(i-t)/(s-t)*(n-e)}_exponentialInterpolate(t,e,s,n,i){return e*Math.pow(n/e,(i-t)/(s-t))}}class md extends dd{constructor(){super(...arguments),this._internalChannels=[]}get numberOfInputs(){return Ju(this.input)?wp(this.input)||this.input instanceof _d?1:this.input.numberOfInputs:0}get numberOfOutputs(){return Ju(this.output)?this.output.numberOfOutputs:0}_isAudioNode(t){return Ju(t)&&(t instanceof md||bp(t))}_getInternalNodes(){const t=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&t.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&t.push(this.output),t}_setChannelProperties(e){this._getInternalNodes().forEach(t=>{t.channelCount=e.channelCount,t.channelCountMode=e.channelCountMode,t.channelInterpretation=e.channelInterpretation})}_getChannelProperties(){var t=this._getInternalNodes();op(0this.connect(t)),this}dispose(){return super.dispose(),Ju(this.input)&&(this.input instanceof md?this.input.dispose():bp(this.input)&&this.input.disconnect()),Ju(this.output)&&(this.output instanceof md?this.output.dispose():bp(this.output)&&this.output.disconnect()),this._internalChannels=[],this}}function gd(...t){var e=t.shift();t.reduce((t,e)=>(t instanceof md?t.connect(e):bp(t)&&vd(t,e),e),e)}function vd(t,e,s=0,n=0){for(op(Ju(t),"Cannot connect from undefined node"),op(Ju(e),"Cannot connect to undefined node"),(e instanceof md||bp(e))&&op(0=this._startTime&&(-1===this._stopTime||t<=this._stopTime)?"started":"stopped"},this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut,this._curve=t.curve,this.onended=t.onended}static getDefaults(){return Object.assign(md.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:Zp})}_startGain(t,e=1){op(-1===this._startTime,"Source cannot be started more than once");var s=this.toSeconds(this._fadeIn);return this._startTime=t+s,this._startTime=Math.max(this._startTime,this.context.currentTime),0{var t="exponential"===this._curve?2*e:0;this._stopSource(this.now()+t),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){var t;this.onended===Zp||(this.onended(this),this.onended=Zp,this.context.isOffline)||(t=()=>this.dispose(),void 0!==window.requestIdleCallback?window.requestIdleCallback(t):setTimeout(t,1e3))}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),op(-1!==this._startTime,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.dispose(),this.onended=Zp,this}}class bd extends wd{constructor(){super(Cp(bd.getDefaults(),arguments,["offset"])),this.name="ToneConstantSource",this._source=this.context.createConstantSource();var t=Cp(bd.getDefaults(),arguments,["offset"]);vd(this._source,this._gainNode),this.offset=new _d({context:this.context,convert:t.convert,param:this._source.offset,units:t.units,value:t.offset,minValue:t.minValue,maxValue:t.maxValue})}static getDefaults(){return Object.assign(wd.getDefaults(),{convert:!0,offset:1,units:"number"})}start(t){t=this.toSeconds(t);return this.log("start",t),this._startGain(t),this._source.start(t),this}_stopSource(t){this._source.stop(t)}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}}class Td extends md{constructor(){super(Cp(Td.getDefaults(),arguments,["value","units"])),this.name="Signal",this.override=!0;var t=Cp(Td.getDefaults(),arguments,["value","units"]);this.output=this._constantSource=new bd({context:this.context,convert:t.convert,offset:t.value,units:t.units,minValue:t.minValue,maxValue:t.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(md.getDefaults(),{convert:!0,units:"number",value:0})}connect(t,e=0,s=0){return Sd(this,t,e,s),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(t,e){return this._param.setValueAtTime(t,e),this}getValueAtTime(t){return this._param.getValueAtTime(t)}setRampPoint(t){return this._param.setRampPoint(t),this}linearRampToValueAtTime(t,e){return this._param.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){return this._param.exponentialRampToValueAtTime(t,e),this}exponentialRampTo(t,e,s){return this._param.exponentialRampTo(t,e,s),this}linearRampTo(t,e,s){return this._param.linearRampTo(t,e,s),this}targetRampTo(t,e,s){return this._param.targetRampTo(t,e,s),this}exponentialApproachValueAtTime(t,e,s){return this._param.exponentialApproachValueAtTime(t,e,s),this}setTargetAtTime(t,e,s){return this._param.setTargetAtTime(t,e,s),this}setValueCurveAtTime(t,e,s,n){return this._param.setValueCurveAtTime(t,e,s,n),this}cancelScheduledValues(t){return this._param.cancelScheduledValues(t),this}cancelAndHoldAtTime(t){return this._param.cancelAndHoldAtTime(t),this}rampTo(t,e,s){return this._param.rampTo(t,e,s),this}get value(){return this._param.value}set value(t){this._param.value=t}get convert(){return this._param.convert}set convert(t){this._param.convert=t}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(t){this._param.overridden=t}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(t){return this._param.apply(t),this}}function Sd(t,e,s,n){(e instanceof _d||wp(e)||e instanceof Td&&e.override)&&(e.cancelScheduledValues(0),e.setValueAtTime(0,0),e instanceof Td&&(e.overridden=!0)),vd(t,e,s,n)}class kd extends _d{constructor(){super(Cp(kd.getDefaults(),arguments,["value"])),this.name="TickParam",this._events=new Np(1/0),this._multiplier=1;var t=Cp(kd.getDefaults(),arguments,["value"]);this._multiplier=t.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(t.value)}),this.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(_d.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(t,e,s){e=this.toSeconds(e),this.setRampPoint(e);const n=this._fromType(t),i=this._events.get(e),r=Math.round(Math.max(1/s,1));for(let t=0;t<=r;t++){const r=s*t+e,o=this._exponentialApproach(i.time,i.value,n,s,r);this.linearRampToValueAtTime(this._toType(o),r)}return this}setValueAtTime(t,e){var s=this.toSeconds(e);super.setValueAtTime(t,e);const n=this._events.get(s),i=this._events.previousEvent(n),r=this._getTicksUntilEvent(i,s);return n.ticks=Math.max(r,0),this}linearRampToValueAtTime(t,e){var s=this.toSeconds(e);super.linearRampToValueAtTime(t,e);const n=this._events.get(s),i=this._events.previousEvent(n),r=this._getTicksUntilEvent(i,s);return n.ticks=Math.max(r,0),this}exponentialRampToValueAtTime(t,e){e=this.toSeconds(e);const s=this._fromType(t),n=this._events.get(e),i=Math.round(Math.max(10*(e-n.time),1)),r=(e-n.time)/i;for(let t=0;t<=i;t++){const i=r*t+n.time,o=this._exponentialInterpolate(n.time,n.value,e,s,i);this.linearRampToValueAtTime(this._toType(o),i)}return this}_getTicksUntilEvent(t,e){if(null===t)t={ticks:0,time:0,type:"setValueAtTime",value:0};else if(Hu(t.ticks)){const e=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(e,t.time)}var s=this._fromType(this.getValueAtTime(t.time));let n=this._fromType(this.getValueAtTime(e));var i=this._events.get(e);return i&&i.time===e&&"setValueAtTime"===i.type&&(n=this._fromType(this.getValueAtTime(e-this.sampleTime))),.5*(e-t.time)*(s+n)+t.ticks}getTicksAtTime(t){var e=this.toSeconds(t),t=this._events.get(e);return Math.max(this._getTicksUntilEvent(t,e),0)}getDurationOfTicks(t,e){var s=this.toSeconds(e),e=this.getTicksAtTime(e);return this.getTimeOfTick(e+t)-s}getTimeOfTick(t){var e=this._events.get(t,"ticks"),s=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&s&&"linearRampToValueAtTime"===s.type&&e.value!==s.value){var n=this._fromType(this.getValueAtTime(e.time)),i=(this._fromType(this.getValueAtTime(s.time))-n)/(s.time-e.time),r=Math.sqrt(Math.pow(n,2)-2*i*(e.ticks-t)),s=(-n+r)/i;return(0{let e=r.time;var s=this._tickOffset.get(t.time);s&&s.time>=r.time&&(o=s.ticks,e=s.time),"started"===r.state&&"started"!==t.state&&(o+=this.frequency.getTicksAtTime(t.time)-this.frequency.getTicksAtTime(e),t.time!=i.time&&(a={state:t.state,time:t.time,ticks:o})),r=t}),this._state.remove(i),a&&this._ticksAtTime.add(a),o}get ticks(){return this.getTicksAtTime(this.now())}set ticks(t){this.setTicksAtTime(t,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(t){var e=this.now(),t=this.frequency.timeToTicks(t,e);this.setTicksAtTime(t,e)}getSecondsAtTime(t){t=this.toSeconds(t);const e=this._state.getLastState("stopped",t),n={state:"paused",time:t};this._state.add(n);var s=this._secondsAtTime.get(t);let i=s||e,r=s?s.seconds:0,o=null;return this._state.forEachBetween(i.time,t+this.sampleTime,t=>{let e=i.time;var s=this._tickOffset.get(t.time);s&&s.time>=i.time&&(r=s.seconds,e=s.time),"started"===i.state&&"started"!==t.state&&(r+=t.time-e,t.time!=n.time&&(o={state:t.state,time:t.time,seconds:r})),i=t}),this._state.remove(n),o&&this._secondsAtTime.add(o),r}setTicksAtTime(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(t,e),ticks:t,time:e}),this._ticksAtTime.cancel(e),this._secondsAtTime.cancel(e),this}getStateAtTime(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)}getTimeOfTick(t,e=this.now()){var s=this._tickOffset.get(e),e=this._state.get(e),e=Math.max(s.time,e.time),s=this.frequency.getTicksAtTime(e)+t-s.ticks;return this.frequency.getTimeOfTick(s)}forEachTickBetween(s,n,i){let r=this._state.get(s);this._state.forEachBetween(s,n,t=>{r&&"started"===r.state&&"started"!==t.state&&this.forEachTickBetween(Math.max(r.time,s),t.time-this.sampleTime,i),r=t});let o=null;if(r&&"started"===r.state){var a=Math.max(r.time,s),h=this.frequency.getTicksAtTime(a),a=h-this.frequency.getTicksAtTime(r.time);let t=Math.ceil(a)-a;t=Ip(t,1)?0:t;let e=this.frequency.getTimeOfTick(h+t);for(;e{switch(t.state){case"started":var e=this._tickSource.getTicksAtTime(t.time);this.emit("start",t.time,e);break;case"stopped":0!==t.time&&this.emit("stop",t.time);break;case"paused":this.emit("pause",t.time)}}),this._tickSource.forEachTickBetween(t,e,(t,e)=>{this.callback(t,e)}))}getStateAtTime(t){t=this.toSeconds(t);return this._state.getValueAtTime(t)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}}Wp.mixin(Dd);class Od extends md{constructor(){super(Cp(Od.getDefaults(),arguments,["delayTime","maxDelay"])),this.name="Delay";var t=Cp(Od.getDefaults(),arguments,["delayTime","maxDelay"]),e=this.toSeconds(t.maxDelay);this._maxDelay=Math.max(e,this.toSeconds(t.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(e),this.delayTime=new _d({context:this.context,param:this._delayNode.delayTime,units:"time",value:t.delayTime,minValue:0,maxValue:this.maxDelay}),Gp(this,"delayTime")}static getDefaults(){return Object.assign(md.getDefaults(),{delayTime:0,maxDelay:1})}get maxDelay(){return this._maxDelay}dispose(){return super.dispose(),this._delayNode.disconnect(),this.delayTime.dispose(),this}}class Md extends Mp{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;const s=Cp(Md.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=s.baseUrl,Object.keys(s.urls).forEach(t=>{this._loadingCount++;var e=s.urls[t];this.add(t,e,this._bufferLoaded.bind(this,s.onload),s.onerror)})}static getDefaults(){return{baseUrl:"",onerror:Zp,onload:Zp,urls:{}}}has(t){return this._buffers.has(t.toString())}get(t){return op(this.has(t),`ToneAudioBuffers has no buffer named: ${t}`),this._buffers.get(t.toString())}_bufferLoaded(t){this._loadingCount--,0===this._loadingCount&&t&&t()}get loaded(){return Array.from(this._buffers).every(([,t])=>t.loaded)}add(t,e,s=Zp,n=Zp){return ip(e)?(this.baseUrl&&"data:audio/"===e.trim().substring(0,11).toLowerCase()&&(this.baseUrl=""),this._buffers.set(t.toString(),new Xp(this.baseUrl+e,s,n))):this._buffers.set(t.toString(),new Xp(e,s,n)),this}dispose(){return super.dispose(),this._buffers.forEach(t=>t.dispose()),this._buffers.clear(),this}}class Ed extends cd{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(t){return id(super._frequencyToUnits(t))}_ticksToUnits(t){return id(super._ticksToUnits(t))}_beatsToUnits(t){return id(super._beatsToUnits(t))}_secondsToUnits(t){return id(super._secondsToUnits(t))}toMidi(){return this.valueOf()}toFrequency(){return od(this.toMidi())}transpose(t){return new Ed(this.context,this.toMidi()+t)}}class Rd extends pd{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(t){return this._getPPQ()*t}_secondsToUnits(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(t){return t}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}}class qd extends dd{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Np,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(t){return this._events.cancel(this.toSeconds(t)),this}_drawLoop(){for(var t=this.context.currentTime;this._events.length&&this._events.peek().time-this.anticipation<=t;){const e=this._events.shift();e&&t-e.time<=this.expiration&&e.callback()}0{t.draw=new qd({context:t})}),zp(t=>{t.draw.dispose()});class Fd extends Mp{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(t){op(Ju(t.time),"Events must have a time property"),op(Ju(t.duration),"Events must have a duration parameter"),t.time=t.time.valueOf();let e=new Id(t.time,t.time+t.duration,t);for(null===this._root?this._root=e:this._root.insert(e),this._length++;null!==e;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this}remove(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(const s of e)if(s.event===t){this._removeNode(s),this._length--;break}}return this}get length(){return this._length}cancel(t){return this.forEachFrom(t,t=>this.remove(t)),this}_setRoot(t){this._root=t,null!==this._root&&(this._root.parent=null)}_replaceNodeInParent(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)}_removeNode(s){if(null===s.left&&null===s.right)this._replaceNodeInParent(s,null);else if(null===s.right)this._replaceNodeInParent(s,s.left);else if(null===s.left)this._replaceNodeInParent(s,s.right);else{let t,e=null;if(0e.low&&(e=s[t]);return e.event}}return null}forEach(e){if(null!==this._root){const s=[];this._root.traverse(t=>s.push(t)),s.forEach(t=>{t.event&&e(t.event)})}return this}forEachAtTime(t,e){if(null!==this._root){const s=[];this._root.search(t,s),s.forEach(t=>{t.event&&e(t.event)})}return this}forEachFrom(t,e){if(null!==this._root){const s=[];this._root.searchAfter(t,s),s.forEach(t=>{t.event&&e(t.event)})}return this}dispose(){return super.dispose(),null!==this._root&&this._root.traverse(t=>t.dispose()),this._root=null,this}}class Id{constructor(t,e,s){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=s,this.low=t,this.high=e,this.max=this.high}insert(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)}search(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))}searchAfter(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)}traverse(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)}updateHeight(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t}isLeftChild(){return null!==this.parent&&this.parent.left===this}get left(){return this._left}set left(t){null!==(this._left=t)&&(t.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(t){null!==(this._right=t)&&(t.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}}class Vd extends md{constructor(){super(Cp(Vd.getDefaults(),arguments,["volume"])),this.name="Volume";var t=Cp(Vd.getDefaults(),arguments,["volume"]);this.input=this.output=new xd({context:this.context,gain:t.volume,units:"decibels"}),this.volume=this.output.gain,Gp(this,"volume"),this._unmutedVolume=t.volume,this.mute=t.mute}static getDefaults(){return Object.assign(md.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}}class Nd extends md{constructor(){super(Cp(Nd.getDefaults(),arguments)),this.name="Destination",this.input=new Vd({context:this.context}),this.output=new xd({context:this.context}),this.volume=this.input.volume;var t=Cp(Nd.getDefaults(),arguments);gd(this.input,this.output,this.context.rawContext.destination),this.mute=t.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(md.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(t){this.input.mute=t}chain(...t){return this.input.disconnect(),t.unshift(this.input),t.push(this.output),gd(...t),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}}jp(t=>{t.destination=new Nd({context:t})}),zp(t=>{t.destination.dispose()});class Pd extends Mp{constructor(t){super(),this.name="TimelineValue",this._timeline=new Np({memory:10}),this._initialValue=t}set(t,e){return this._timeline.add({value:t,time:e}),this}get(t){t=this._timeline.get(t);return t?t.value:this._initialValue}}class jd{constructor(t,e){this.id=jd._eventId++,this._remainderTime=0;e=Object.assign(jd.getDefaults(),e);this.transport=t,this.callback=e.callback,this._once=e.once,this.time=Math.floor(e.time),this._remainderTime=e.time-this.time}static getDefaults(){return{callback:Zp,once:!1,time:0}}get floatTime(){return this.time+this._remainderTime}invoke(t){var e;this.callback&&(e=this.transport.bpm.getDurationOfTicks(1,t),this.callback(t+this._remainderTime*e),this._once&&this.transport.clear(this.id))}dispose(){return this.callback=void 0,this}}jd._eventId=0;class Ld extends jd{constructor(t,e){super(t,e),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);e=Object.assign(Ld.getDefaults(),e);this.duration=e.duration,this._interval=e.interval,this._nextTick=e.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.transport.on("ticks",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},jd.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(t){this._createEvents(t),super.invoke(t)}_createEvent(){return Fp(this._nextTick,this.floatTime+this.duration)?this.transport.scheduleOnce(this.invoke.bind(this),new Rd(this.context,this._nextTick).toSeconds()):-1}_createEvents(t){Fp(this._nextTick+this._interval,this.floatTime+this.duration)&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new Rd(this.context,this._nextTick).toSeconds()))}_restart(t){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.floatTime;t=this.transport.getTicksAtTime(t);Rp(t,this.time)&&(this._nextTick=this.floatTime+Math.ceil((t-this.floatTime)/this._interval)*this._interval),this._currentId=this._createEvent(),this._nextTick+=this._interval,this._nextId=this._createEvent()}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this.transport.off("ticks",this._boundRestart),this}}class zd extends dd{constructor(){super(Cp(zd.getDefaults(),arguments)),this.name="Transport",this._loop=new Pd(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Np,this._repeatedEvents=new Fd,this._syncedSignals=[],this._swingAmount=0;var t=Cp(zd.getDefaults(),arguments);this._ppq=t.ppq,this._clock=new Dd({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=t.ppq,this.bpm.setValueAtTime(t.bpm,0),Gp(this,"bpm"),this._timeSignature=t.timeSignature,this._swingTicks=t.ppq/2}static getDefaults(){return Object.assign(dd.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(e,t){var s;this._loop.get(e)&&t>=this._loopEnd&&(this.emit("loopEnd",e),this._clock.setTicksAtTime(this._loopStart,e),t=this._loopStart,this.emit("loopStart",e,this._clock.getSecondsAtTime(e)),this.emit("loop",e)),0t.invoke(e)),up(!1)}schedule(t,e){e=new jd(this,{callback:t,time:new pd(this.context,e).toTicks()});return this._addEvent(e,this._timeline)}scheduleRepeat(t,e,s,n=1/0){s=new Ld(this,{callback:t,duration:new hd(this.context,n).toTicks(),interval:new hd(this.context,e).toTicks(),time:new pd(this.context,s).toTicks()});return this._addEvent(s,this._repeatedEvents)}scheduleOnce(t,e){e=new jd(this,{callback:t,once:!0,time:new pd(this.context,e).toTicks()});return this._addEvent(e,this._timeline)}clear(t){if(this._scheduledEvents.hasOwnProperty(t)){const e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this}_addEvent(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id}cancel(t=0){t=this.toTicks(t);return this._timeline.forEachFrom(t,t=>this.clear(t.id)),this._repeatedEvents.forEachFrom(t,t=>this.clear(t.id)),this}_bindClockEvents(){this._clock.on("start",(t,e)=>{e=new Rd(this.context,e).toSeconds(),this.emit("start",t,e)}),this._clock.on("stop",t=>{this.emit("stop",t)}),this._clock.on("pause",t=>{this.emit("pause",t)})}get state(){return this._clock.getStateAtTime(this.now())}start(t,e){let s;return this.context.resume(),Ju(e)&&(s=this.toTicks(e)),this._clock.start(t,s),this}stop(t){return this._clock.stop(t),this}pause(t){return this._clock.pause(t),this}toggle(t){return t=this.toSeconds(t),"started"!==this._clock.getStateAtTime(t)?this.start(t):this.stop(t),this}get timeSignature(){return this._timeSignature}set timeSignature(t){np(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}get loopStart(){return new hd(this.context,this._loopStart,"i").toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t)}get loopEnd(){return new hd(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t)}get loop(){return this._loop.get(this.now())}set loop(t){this._loop.set(t,this.now())}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get swing(){return this._swingAmount}set swing(t){this._swingAmount=t}get swingSubdivision(){return new Rd(this.context,this._swingTicks).toNotation()}set swingSubdivision(t){this._swingTicks=this.toTicks(t)}get position(){var t=this.now(),t=this._clock.getTicksAtTime(t);return new Rd(this.context,t).toBarsBeatsSixteenths()}set position(t){t=this.toTicks(t);this.ticks=t}get seconds(){return this._clock.seconds}set seconds(t){var e=this.now(),e=this._clock.frequency.timeToTicks(t,e);this.ticks=e}get progress(){if(this.loop){var t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}return 0}get ticks(){return this._clock.ticks}set ticks(t){var e,s;this._clock.ticks!==t&&(e=this.now(),"started"===this.state?(s=this._clock.getTicksAtTime(e),s=e+this._clock.frequency.getDurationOfTicks(Math.ceil(s)-s,e),this.emit("stop",s),this._clock.setTicksAtTime(t,s),this.emit("start",s,this._clock.getSecondsAtTime(s))):(this.emit("ticks",e),this._clock.setTicksAtTime(t,e)))}getTicksAtTime(t){return this._clock.getTicksAtTime(t)}getSecondsAtTime(t){return this._clock.getSecondsAtTime(t)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(t){this._clock.frequency.multiplier=t}nextSubdivision(t){if(t=this.toTicks(t),"started"!==this.state)return 0;var e=this.now(),t=t-this.getTicksAtTime(e)%t;return this._clock.nextTickTime(t,e)}syncSignal(t,e){if(!e){const n=this.now();var s;e=0!==t.getValueAtTime(n)?(s=1/(60/this.bpm.getValueAtTime(n)/this.PPQ),t.getValueAtTime(n)/s):0}const n=new xd(e);return this.bpm.connect(n),n.connect(t._param),this._syncedSignals.push({initial:t.value,ratio:n,signal:t}),t.value=0,this}unsyncSignal(e){for(let t=this._syncedSignals.length-1;0<=t;t--){const s=this._syncedSignals[t];s.signal===e&&(s.ratio.dispose(),s.signal.value=s.initial,this._syncedSignals.splice(t,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Qp(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}}Wp.mixin(zd),jp(t=>{t.transport=new zd({context:t})}),zp(t=>{t.transport.dispose()});class Wd extends md{constructor(t){super(t),this.input=void 0,this._state=new fd("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=Zp,this._syncedStop=Zp,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Vd({context:this.context,mute:t.mute,volume:t.volume}),this.volume=this._volume.volume,Gp(this,"volume"),this.onstop=t.onstop}static getDefaults(){return Object.assign(md.getDefaults(),{mute:!1,onstop:Zp,volume:0})}get state(){return this._synced?"started"===this.context.transport.state?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}_clampToCurrentTime(t){return this._synced?t:Math.max(t,this.context.currentTime)}start(t,e,s){var n=Hu(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t),n=this._clampToCurrentTime(n);if(this._synced||"started"!==this._state.getValueAtTime(n))if(this.log("start",n),this._state.setStateAtTime("started",n),this._synced){const i=this._state.get(n);i&&(i.offset=this.toSeconds(Dp(e,0)),i.duration=s?this.toSeconds(s):void 0);t=this.context.transport.schedule(t=>{this._start(t,e,s)},n);this._scheduled.push(t),"started"===this.context.transport.state&&this.context.transport.getSecondsAtTime(this.immediate())>n&&this._syncedStart(this.now(),this.context.transport.seconds)}else hp(this.context),this._start(n,e,s);else op(Rp(n,this._state.get(n).time),"Start time must be strictly greater than previous start time"),this._state.cancel(n),this._state.setStateAtTime("started",n),this.log("restart",n),this.restart(n,e,s);return this}stop(t){t=Hu(t)&&this._synced?this.context.transport.seconds:this.toSeconds(t),t=this._clampToCurrentTime(t);if("started"===this._state.getValueAtTime(t)||Ju(this._state.getNextState("started",t))){if(this.log("stop",t),this._synced){const e=this.context.transport.schedule(this._stop.bind(this),t);this._scheduled.push(e)}else this._stop(t);this._state.cancel(t),this._state.setStateAtTime("stopped",t)}return this}restart(t,e,s){return t=this.toSeconds(t),"started"===this._state.getValueAtTime(t)&&(this._state.cancel(t),this._restart(t,e,s)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(e,s)=>{if(Rp(s,0)){var n=this._state.get(s);if(n&&"started"===n.state&&n.time!==s){s=s-this.toSeconds(n.time);let t;n.duration&&(t=this.toSeconds(n.duration)-s),this._start(e,this.toSeconds(n.offset)+s,t)}}},this._syncedStop=t=>{var e=this.context.transport.getSecondsAtTime(Math.max(t-this.sampleTime,0));"started"===this._state.getValueAtTime(e)&&this._stop(t)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(t=>this.context.transport.clear(t)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=Zp,this.unsync(),this._volume.dispose(),this._state.dispose(),this}}class Bd extends wd{constructor(){super(Cp(Bd.getDefaults(),arguments,["url","onload"])),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1;var t=Cp(Bd.getDefaults(),arguments,["url","onload"]);vd(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new _d({context:this.context,param:this._source.playbackRate,units:"positive",value:t.playbackRate}),this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this._buffer=new Xp(t.url,t.onload,t.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(wd.getDefaults(),{url:new Xp,loop:!1,loopEnd:0,loopStart:0,onload:Zp,onerror:Zp,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t}get curve(){return this._curve}set curve(t){this._curve=t}start(t,e,s,n=1){op(this.buffer.loaded,"buffer is either not set or not loaded");t=this.toSeconds(t);this._startGain(t,n),e=this.loop?Dp(e,this.loopStart):Dp(e,0);let i=Math.max(this.toSeconds(e),0);if(this.loop){const r=this.toSeconds(this.loopEnd)||this.buffer.duration,e=this.toSeconds(this.loopStart),o=r-e;qp(i,r)&&(i=(i-e)%o+e),Ip(i,this.buffer.duration)&&(i=0)}return this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Fp(i,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(t,i)),Ju(s)&&(s=this.toSeconds(s),s=Math.max(s,0),this.stop(t+s)),this}_stopSource(t){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(t)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(t){this._source.loopStart=this.toSeconds(t)}get loopEnd(){return this._source.loopEnd}set loopEnd(t){this._source.loopEnd=this.toSeconds(t)}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._source.loop}set loop(t){this._source.loop=t,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}}class Ud extends Wd{constructor(){super(Cp(Ud.getDefaults(),arguments,["type"])),this.name="Noise",this._source=null;var t=Cp(Ud.getDefaults(),arguments,["type"]);this._playbackRate=t.playbackRate,this.type=t.type,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(Wd.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(t){if(op(t in Zd,"Noise: invalid type: "+t),this._type!==t&&(this._type=t,"started"===this.state)){const t=this.now();this._stop(t),this._start(t)}}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}_start(t){var e=Zd[this._type];this._source=new Bd({url:e,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))}_stop(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=t,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=t,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(t){this._stop(t),this._start(t)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}}const Gd=220500,Qd={brown:null,pink:null,white:null},Zd={get brown(){if(!Qd.brown){const n=[];for(let t=0;t<2;t++){const i=new Float32Array(Gd);n[t]=i;let e=0;for(let t=0;tt.label===n||t.deviceId===n),!this._device&&0{t.stop()}),this._stream=void 0,this._mediaStream.disconnect(),this._mediaStream=void 0),this._device=void 0,this}static enumerateDevices(){return yp(this,void 0,void 0,function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter(t=>"audioinput"===t.kind)})}get state(){return this._stream&&this._stream.active?"started":"stopped"}get deviceId(){return this._device?this._device.deviceId:void 0}get groupId(){return this._device?this._device.groupId:void 0}get label(){return this._device?this._device.label:void 0}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this.close(),this._volume.dispose(),this.volume.dispose(),this}static get supported(){return Ju(navigator.mediaDevices)&&Ju(navigator.mediaDevices.getUserMedia)}}function Yd(s,n){return yp(this,void 0,void 0,function*(){const t=n/s.context.sampleRate,e=new Yp(1,t,s.context.sampleRate);return new s.constructor(Object.assign(s.get(),{frequency:2/t,detune:0,context:e})).toDestination().start(0),(yield e.render()).getChannelData(0)})}class $d extends wd{constructor(){super(Cp($d.getDefaults(),arguments,["frequency","type"])),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator];var t=Cp($d.getDefaults(),arguments,["frequency","type"]);vd(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new _d({context:this.context,param:this._oscillator.frequency,units:"frequency",value:t.frequency}),this.detune=new _d({context:this.context,param:this._oscillator.detune,units:"cents",value:t.detune}),Gp(this,["frequency","detune"])}static getDefaults(){return Object.assign(wd.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(t){t=this.toSeconds(t);return this.log("start",t),this._startGain(t),this._oscillator.start(t),this}_stopSource(t){this._oscillator.stop(t)}setPeriodicWave(t){return this._oscillator.setPeriodicWave(t),this}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}}class Hd extends Wd{constructor(){super(Cp(Hd.getDefaults(),arguments,["frequency","type"])),this.name="Oscillator",this._oscillator=null;const t=Cp(Hd.getDefaults(),arguments,["frequency","type"]);this.frequency=new Td({context:this.context,units:"frequency",value:t.frequency}),Gp(this,"frequency"),this.detune=new Td({context:this.context,units:"cents",value:t.detune}),Gp(this,"detune"),this._partials=t.partials,this._partialCount=t.partialCount,this._type=t.type,t.partialCount&&"custom"!==t.type&&(this._type=this.baseType+t.partialCount.toString()),this.phase=t.phase}static getDefaults(){return Object.assign(Wd.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(t){var e=this.toSeconds(t),t=new $d({context:this.context,onended:()=>this.onstop(this)});this._oscillator=t,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(e)}_stop(t){t=this.toSeconds(t);this._oscillator&&this._oscillator.stop(t)}_restart(t){t=this.toSeconds(t);return this.log("restart",t),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(t),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if("custom"===this._type)return Hd._periodicWaveCache.find(t=>{return t.phase===this._phase&&(t=t.partials,s=this._partials,t.length===s.length&&t.every((t,e)=>s[e]===t));var s});var t=Hd._periodicWaveCache.find(t=>t.type===this._type&&t.phase===this._phase);return this._partialCount=t?t.partialCount:this._partialCount,t}get type(){return this._type}set type(t){this._type=t;const e=-1!==["sine","square","sawtooth","triangle"].indexOf(t);if(0===this._phase&&e)this._wave=void 0,this._partialCount=0,null!==this._oscillator&&(this._oscillator.type=t);else{const e=this._getCachedPeriodicWave();if(Ju(e)){const{partials:t,wave:s}=e;this._wave=s,this._partials=t,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave)}else{const[e,n]=this._getRealImaginary(t,this._phase),i=this.context.createPeriodicWave(e,n);this._wave=i,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),Hd._periodicWaveCache.push({imag:n,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:e,type:this._type,wave:this._wave}),100s[e]=t),this._partials=Array.from(s),this.type=this._type}}_getRealImaginary(s,n){let i=2048;const r=new Float32Array(i),o=new Float32Array(i);let a=1;if("custom"===s){if(a=this._partials.length+1,this._partialCount=this._partials.length,i=a,0===this._partials.length)return[r,o]}else{const n=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(s);n?(a=parseInt(n[2],10)+1,this._partialCount=parseInt(n[2],10),s=n[1],a=Math.max(a,2),i=a):this._partialCount=0,this._partials=[]}for(let e=1;e>1&1?-1:1):0,this._partials[e-1]=t;break;case"custom":t=this._partials[e-1];break;default:throw new TypeError("Oscillator: invalid type: "+s)}0!==t?(r[e]=-t*Math.sin(n*e),o[e]=t*Math.cos(n*e)):(r[e]=0,o[e]=0)}return[r,o]}_inverseFFT(e,s,n){let i=0;var r=e.length;for(let t=0;tt.includes(e)),"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.disconnect(),this}}class tf extends Jd{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new Kd({context:this.context,mapping:t=>(t+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class ef extends Td{constructor(){super(Object.assign(Cp(ef.getDefaults(),arguments,["value"]))),this.name="Multiply",this.override=!1;var t=Cp(ef.getDefaults(),arguments,["value"]);this._mult=this.input=this.output=new xd({context:this.context,minValue:t.minValue,maxValue:t.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(t.value,0)}static getDefaults(){return Object.assign(Td.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}}class sf extends Wd{constructor(){super(Cp(sf.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="AMOscillator",this._modulationScale=new tf({context:this.context}),this._modulationNode=new xd({context:this.context});var t=Cp(sf.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new Hd({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new Hd({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new ef({context:this.context,units:"positive",value:t.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),Gp(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Hd.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){this._modulator.restart(t),this._carrier.restart(t)}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}}class nf extends Wd{constructor(){super(Cp(nf.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="FMOscillator",this._modulationNode=new xd({context:this.context,gain:0});var t=Cp(nf.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new Hd({context:this.context,detune:t.detune,frequency:0,onstop:()=>this.onstop(this),phase:t.phase,type:t.type}),this.detune=this._carrier.detune,this.frequency=new Td({context:this.context,units:"frequency",value:t.frequency}),this._modulator=new Hd({context:this.context,phase:t.phase,type:t.modulationType}),this.harmonicity=new ef({context:this.context,units:"positive",value:t.harmonicity}),this.modulationIndex=new ef({context:this.context,units:"positive",value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),Gp(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Hd.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(t){this._modulator.start(t),this._carrier.start(t)}_stop(t){this._modulator.stop(t),this._carrier.stop(t)}_restart(t){return this._modulator.restart(t),this._carrier.restart(t),this}get type(){return this._carrier.type}set type(t){this._carrier.type=t}get baseType(){return this._carrier.baseType}set baseType(t){this._carrier.baseType=t}get partialCount(){return this._carrier.partialCount}set partialCount(t){this._carrier.partialCount=t}get modulationType(){return this._modulator.type}set modulationType(t){this._modulator.type=t}get phase(){return this._carrier.phase}set phase(t){this._carrier.phase=t,this._modulator.phase=t}get partials(){return this._carrier.partials}set partials(t){this._carrier.partials=t}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}}class rf extends Wd{constructor(){super(Cp(rf.getDefaults(),arguments,["frequency","width"])),this.name="PulseOscillator",this._widthGate=new xd({context:this.context,gain:0}),this._thresh=new Kd({context:this.context,mapping:t=>t<=0?-1:1});var t=Cp(rf.getDefaults(),arguments,["frequency","width"]);this.width=new Td({context:this.context,units:"audioRange",value:t.width}),this._triangle=new Hd({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),Gp(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(Wd.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(t){t=this.toSeconds(t),this._triangle.start(t),this._widthGate.gain.setValueAtTime(1,t)}_stop(t){t=this.toSeconds(t),this._triangle.stop(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(0,t)}_restart(t){this._triangle.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)}get phase(){return this._triangle.phase}set phase(t){this._triangle.phase=t}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(t){this._triangle.type=t}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}}class of extends Wd{constructor(){super(Cp(of.getDefaults(),arguments,["frequency","type","spread"])),this.name="FatOscillator",this._oscillators=[];var t=Cp(of.getDefaults(),arguments,["frequency","type","spread"]);this.frequency=new Td({context:this.context,units:"frequency",value:t.frequency}),this.detune=new Td({context:this.context,units:"cents",value:t.detune}),this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,Gp(this,["frequency","detune"])}static getDefaults(){return Object.assign(Hd.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(e){e=this.toSeconds(e),this._forEach(t=>t.start(e))}_stop(e){e=this.toSeconds(e),this._forEach(t=>t.stop(e))}_restart(e){this._forEach(t=>t.restart(e))}_forEach(e){for(let t=0;tt.type=e)}get spread(){return this._spread}set spread(t){if(this._spread=t,1t.detune.value=s+n*e)}}get count(){return this._oscillators.length}set count(e){if(ap(e,1),this._oscillators.length!==e){this._forEach(t=>t.dispose()),this._oscillators=[];for(let t=0;tthis.onstop(this):Zp});"custom"===this.type&&(s.partials=this._partials),this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.detune.overridden=!1,s.connect(this.output),this._oscillators[t]=s}this.spread=this._spread,"started"===this.state&&this._forEach(t=>t.start())}}get phase(){return this._phase}set phase(t){this._phase=t,this._forEach((t,e)=>t.phase=this._phase+e/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(e){this._forEach(t=>t.baseType=e),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(e){this._partials=e,this._partialCount=this._partials.length,e.length&&(this._type="custom",this._forEach(t=>t.partials=e))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(e){this._partialCount=e,this._forEach(t=>t.partialCount=e),this._type=this._oscillators[0].type}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(t=>t.dispose()),this}}class af extends Wd{constructor(){super(Cp(af.getDefaults(),arguments,["frequency","modulationFrequency"])),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new ef({context:this.context,value:2});var t=Cp(af.getDefaults(),arguments,["frequency","modulationFrequency"]);this._pulse=new rf({context:this.context,frequency:t.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Hd({context:this.context,detune:t.detune,frequency:t.frequency,onstop:()=>this.onstop(this),phase:t.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),Gp(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(Wd.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)}_stop(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)}_restart(t){this._modulator.restart(t),this._pulse.restart(t)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(t){this._modulator.phase=t}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}}const hf={am:sf,fat:of,fm:nf,oscillator:Hd,pulse:rf,pwm:af};class cf extends Wd{constructor(){super(Cp(cf.getDefaults(),arguments,["frequency","type"])),this.name="OmniOscillator";var t=Cp(cf.getDefaults(),arguments,["frequency","type"]);this.frequency=new Td({context:this.context,units:"frequency",value:t.frequency}),this.detune=new Td({context:this.context,units:"cents",value:t.detune}),Gp(this,["frequency","detune"]),this.set(t)}static getDefaults(){return Object.assign(Hd.getDefaults(),nf.getDefaults(),sf.getDefaults(),of.getDefaults(),rf.getDefaults(),af.getDefaults())}_start(t){this._oscillator.start(t)}_stop(t){this._oscillator.stop(t)}_restart(t){return this._oscillator.restart(t),this}get type(){let t="";return["am","fm","fat"].some(t=>this._sourceType===t)&&(t=this._sourceType),t+this._oscillator.type}set type(t){"fm"===t.substr(0,2)?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):"am"===t.substr(0,2)?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(2)):"fat"===t.substr(0,3)?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=t.substr(3)):"pwm"===t?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):"pulse"===t?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=t)}get partials(){return this._oscillator.partials}set partials(t){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partials=t)}get partialCount(){return this._oscillator.partialCount}set partialCount(t){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partialCount=t)}set(t){return Reflect.has(t,"type")&&t.type&&(this.type=t.type),super.set(t),this}_createNewOscillator(t){if(t!==this._sourceType){this._sourceType=t;const e=hf[t],s=this.now();if(this._oscillator){const t=this._oscillator;t.stop(s),this.context.setTimeout(()=>t.dispose(),this.blockTime)}this._oscillator=new e({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),"started"===this.state&&this._oscillator.start(s)}}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t}get sourceType(){return this._sourceType}set sourceType(t){let e="sine";"pwm"!==this._oscillator.type&&"pulse"!==this._oscillator.type&&(e=this._oscillator.type),"fm"===t?this.type="fm"+e:"am"===t?this.type="am"+e:"fat"===t?this.type="fat"+e:"oscillator"===t?this.type=e:"pulse"===t?this.type="pulse":"pwm"===t&&(this.type="pwm")}_getOscType(t,e){return t instanceof hf[e]}get baseType(){return this._oscillator.baseType}set baseType(t){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||"pulse"===t||"pwm"===t||(this._oscillator.baseType=t)}get width(){return this._getOscType(this._oscillator,"pulse")?this._oscillator.width:void 0}get count(){return this._getOscType(this._oscillator,"fat")?this._oscillator.count:void 0}set count(t){this._getOscType(this._oscillator,"fat")&&tp(t)&&(this._oscillator.count=t)}get spread(){return this._getOscType(this._oscillator,"fat")?this._oscillator.spread:void 0}set spread(t){this._getOscType(this._oscillator,"fat")&&tp(t)&&(this._oscillator.spread=t)}get modulationType(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.modulationType:void 0}set modulationType(t){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&ip(t)&&(this._oscillator.modulationType=t)}get modulationIndex(){return this._getOscType(this._oscillator,"fm")?this._oscillator.modulationIndex:void 0}get harmonicity(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.harmonicity:void 0}get modulationFrequency(){return this._getOscType(this._oscillator,"pwm")?this._oscillator.modulationFrequency:void 0}asArray(t=1024){return yp(this,void 0,void 0,function*(){return Yd(this,t)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}}class lf extends Td{constructor(){super(Object.assign(Cp(lf.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Add",this._sum=new xd({context:this.context}),this.input=this._sum,this.output=this._sum,this.addend=this._param,gd(this._constantSource,this._sum)}static getDefaults(){return Object.assign(Td.getDefaults(),{value:0})}dispose(){return super.dispose(),this._sum.dispose(),this}}class uf extends Jd{constructor(){super(Object.assign(Cp(uf.getDefaults(),arguments,["min","max"]))),this.name="Scale";var t=Cp(uf.getDefaults(),arguments,["min","max"]);this._mult=this.input=new ef({context:this.context,value:t.max-t.min}),this._add=this.output=new lf({context:this.context,value:t.min}),this._min=t.min,this._max=t.max,this.input.connect(this.output)}static getDefaults(){return Object.assign(Jd.getDefaults(),{max:1,min:0})}get min(){return this._min}set min(t){this._min=t,this._setRange()}get max(){return this._max}set max(t){this._max=t,this._setRange()}_setRange(){this._add.value=this._min,this._mult.value=this._max-this._min}dispose(){return super.dispose(),this._add.dispose(),this._mult.dispose(),this}}class pf extends Jd{constructor(){super(Object.assign(Cp(pf.getDefaults(),arguments))),this.name="Zero",this._gain=new xd({context:this.context}),this.output=this._gain,this.input=void 0,vd(this.context.getConstant(0),this._gain)}dispose(){return super.dispose(),yd(this.context.getConstant(0),this._gain),this}}class df extends md{constructor(){super(Cp(df.getDefaults(),arguments,["frequency","min","max"])),this.name="LFO",this._stoppedValue=0,this._units="number",this.convert=!0,this._fromType=_d.prototype._fromType,this._toType=_d.prototype._toType,this._is=_d.prototype._is,this._clampValue=_d.prototype._clampValue;var t=Cp(df.getDefaults(),arguments,["frequency","min","max"]);this._oscillator=new Hd(t),this.frequency=this._oscillator.frequency,this._amplitudeGain=new xd({context:this.context,gain:t.amplitude,units:"normalRange"}),this.amplitude=this._amplitudeGain.gain,this._stoppedSignal=new Td({context:this.context,units:"audioRange",value:0}),this._zeros=new pf({context:this.context}),this._a2g=new tf({context:this.context}),this._scaler=this.output=new uf({context:this.context,max:t.max,min:t.min}),this.units=t.units,this.min=t.min,this.max=t.max,this._oscillator.chain(this._amplitudeGain,this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),Gp(this,["amplitude","frequency"]),this.phase=t.phase}static getDefaults(){return Object.assign(Hd.getDefaults(),{amplitude:1,frequency:"4n",max:1,min:0,type:"sine",units:"number"})}start(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this}stop(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this}sync(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this}unsync(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this}_setStoppedValue(){this._stoppedValue=this._oscillator.getInitialValue(),this._stoppedSignal.value=this._stoppedValue}get min(){return this._toType(this._scaler.min)}set min(t){t=this._fromType(t),this._scaler.min=t}get max(){return this._toType(this._scaler.max)}set max(t){t=this._fromType(t),this._scaler.max=t}get type(){return this._oscillator.type}set type(t){this._oscillator.type=t,this._setStoppedValue()}get partials(){return this._oscillator.partials}set partials(t){this._oscillator.partials=t,this._setStoppedValue()}get phase(){return this._oscillator.phase}set phase(t){this._oscillator.phase=t,this._setStoppedValue()}get units(){return this._units}set units(t){var e=this.min,s=this.max;this._units=t,this.min=e,this.max=s}get state(){return this._oscillator.state}connect(t,e,s){return(t instanceof _d||t instanceof Td)&&(this.convert=t.convert,this.units=t.units),Sd(this,t,e,s),this}dispose(){return super.dispose(),this._oscillator.dispose(),this._stoppedSignal.dispose(),this._zeros.dispose(),this._scaler.dispose(),this._a2g.dispose(),this._amplitudeGain.dispose(),this.amplitude.dispose(),this}}function ff(s,n=1/0){const i=new WeakMap;return function(t,e){Reflect.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return i.get(this)},set:function(t){ap(t,s,n),i.set(this,t)}})}}function _f(s,n=1/0){const i=new WeakMap;return function(t,e){Reflect.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return i.get(this)},set:function(t){ap(this.toSeconds(t),s,n),i.set(this,t)}})}}class mf extends Wd{constructor(){super(Cp(mf.getDefaults(),arguments,["url","onload"])),this.name="Player",this._activeSources=new Set;var t=Cp(mf.getDefaults(),arguments,["url","onload"]);this._buffer=new Xp({onload:this._onload.bind(this,t.onload),onerror:t.onerror,reverse:t.reverse,url:t.url}),this.autostart=t.autostart,this._loop=t.loop,this._loopStart=t.loopStart,this._loopEnd=t.loopEnd,this._playbackRate=t.playbackRate,this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut}static getDefaults(){return Object.assign(Wd.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:Zp,onerror:Zp,playbackRate:1,reverse:!1})}load(t){return yp(this,void 0,void 0,function*(){return yield this._buffer.load(t),this._onload(),this})}_onload(t=Zp){t(),this.autostart&&this.start()}_onSourceEnd(t){this.onstop(this),this._activeSources.delete(t),0!==this._activeSources.size||this._synced||"started"!==this._state.getValueAtTime(this.now())||(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(t,e,s){return super.start(t,e,s),this}_start(t,e,s){e=this._loop?Dp(e,this._loopStart):Dp(e,0);var n=this.toSeconds(e),e=s;s=Dp(s,Math.max(this._buffer.duration-n,0));s=this.toSeconds(s);s/=this._playbackRate,t=this.toSeconds(t);const i=new Bd({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);this._loop||this._synced||(this._state.cancel(t+s),this._state.setStateAtTime("stopped",t+s,{implicitEnd:!0})),this._activeSources.add(i),this._loop&&Hu(e)?i.start(t,n):i.start(t,n,s-this.toSeconds(this.fadeOut))}_stop(t){const e=this.toSeconds(t);this._activeSources.forEach(t=>t.stop(e))}restart(t,e,s){return super.restart(t,e,s),this}_restart(t,e,s){this._stop(t),this._start(t,e,s)}seek(t,e){e=this.toSeconds(e);if("started"===this._state.getValueAtTime(e)){const s=this.toSeconds(t);this._stop(e),this._start(e,s)}return this}setLoopPoints(t,e){return this.loopStart=t,this.loopEnd=e,this}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this.buffer.loaded&&ap(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach(t=>{t.loopStart=e})}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this.buffer.loaded&&ap(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach(t=>{t.loopEnd=e})}get buffer(){return this._buffer}set buffer(t){this._buffer.set(t)}get loop(){return this._loop}set loop(e){if(this._loop!==e&&(this._loop=e,this._activeSources.forEach(t=>{t.loop=e}),e)){const e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e;const s=this.now(),t=this._state.getNextState("stopped",s);t&&t.implicitEnd&&(this._state.cancel(t.time),this._activeSources.forEach(t=>t.cancelStop())),this._activeSources.forEach(t=>{t.playbackRate.setValueAtTime(e,s)})}get reverse(){return this._buffer.reverse}set reverse(t){this._buffer.reverse=t}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(t=>t.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}}vp([_f(0)],mf.prototype,"fadeIn",void 0),vp([_f(0)],mf.prototype,"fadeOut",void 0);class gf extends md{constructor(){super(Cp(gf.getDefaults(),arguments,["urls","onload"],"urls")),this.name="Players",this.input=void 0,this._players=new Map;var t=Cp(gf.getDefaults(),arguments,["urls","onload"],"urls");this._volume=this.output=new Vd({context:this.context,volume:t.volume}),this.volume=this._volume.volume,Gp(this,"volume"),this._buffers=new Md({urls:t.urls,onload:t.onload,baseUrl:t.baseUrl,onerror:t.onerror}),this.mute=t.mute,this._fadeIn=t.fadeIn,this._fadeOut=t.fadeOut}static getDefaults(){return Object.assign(Wd.getDefaults(),{baseUrl:"",fadeIn:0,fadeOut:0,mute:!1,onload:Zp,onerror:Zp,urls:{},volume:0})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._players.forEach(t=>{t.fadeIn=e})}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._players.forEach(t=>{t.fadeOut=e})}get state(){return Array.from(this._players).some(([,t])=>"started"===t.state)?"started":"stopped"}has(t){return this._buffers.has(t)}player(t){var e;return op(this.has(t),`No Player with the name ${t} exists on this object`),this._players.has(t)||(e=new mf({context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,url:this._buffers.get(t)}).connect(this.output),this._players.set(t,e)),this._players.get(t)}get loaded(){return this._buffers.loaded}add(t,e,s){return op(!this._buffers.has(t),"A buffer with that name already exists on this object"),this._buffers.add(t,e,s),this}stopAll(e){return this._players.forEach(t=>t.stop(e)),this}dispose(){return super.dispose(),this._volume.dispose(),this.volume.dispose(),this._players.forEach(t=>t.dispose()),this._buffers.dispose(),this}}class vf extends Wd{constructor(){super(Cp(vf.getDefaults(),arguments,["url","onload"])),this.name="GrainPlayer",this._loopStart=0,this._loopEnd=0,this._activeSources=[];var t=Cp(vf.getDefaults(),arguments,["url","onload"]);this.buffer=new Xp({onload:t.onload,onerror:t.onerror,reverse:t.reverse,url:t.url}),this._clock=new Dd({context:this.context,callback:this._tick.bind(this),frequency:1/t.grainSize}),this._playbackRate=t.playbackRate,this._grainSize=t.grainSize,this._overlap=t.overlap,this.detune=t.detune,this.overlap=t.overlap,this.loop=t.loop,this.playbackRate=t.playbackRate,this.grainSize=t.grainSize,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this.reverse=t.reverse,this._clock.on("stop",this._onstop.bind(this))}static getDefaults(){return Object.assign(Wd.getDefaults(),{onload:Zp,onerror:Zp,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1})}_start(t,e,s){e=Dp(e,0),e=this.toSeconds(e),t=this.toSeconds(t);var n=1/this._clock.frequency.getValueAtTime(t);this._clock.start(t,e/n),s&&this.stop(t+this.toSeconds(s))}restart(t,e,s){return super.restart(t,e,s),this}_restart(t,e,s){this._stop(t),this._start(t,e,s)}_stop(t){this._clock.stop(t)}_onstop(e){this._activeSources.forEach(t=>{t.fadeOut=0,t.stop(e)}),this.onstop(this)}_tick(t){var e=this._clock.getTicksAtTime(t),s=e*this._grainSize;if(this.log("offset",s),!this.loop&&s>this.buffer.duration)this.stop(t);else{const n=s{var t=this._activeSources.indexOf(i);-1!==t&&this._activeSources.splice(t,1)}}}get playbackRate(){return this._playbackRate}set playbackRate(t){ap(t,.001),this._playbackRate=t,this.grainSize=this._grainSize}get loopStart(){return this._loopStart}set loopStart(t){this.buffer.loaded&&ap(this.toSeconds(t),0,this.buffer.duration),this._loopStart=this.toSeconds(t)}get loopEnd(){return this._loopEnd}set loopEnd(t){this.buffer.loaded&&ap(this.toSeconds(t),0,this.buffer.duration),this._loopEnd=this.toSeconds(t)}get reverse(){return this.buffer.reverse}set reverse(t){this.buffer.reverse=t}get grainSize(){return this._grainSize}set grainSize(t){this._grainSize=this.toSeconds(t),this._clock.frequency.setValueAtTime(this._playbackRate/this._grainSize,this.now())}get overlap(){return this._overlap}set overlap(t){t=this.toSeconds(t);ap(t,0),this._overlap=t}get loaded(){return this.buffer.loaded}dispose(){return super.dispose(),this.buffer.dispose(),this._clock.dispose(),this._activeSources.forEach(t=>t.dispose()),this}}class yf extends Jd{constructor(){super(...arguments),this.name="Abs",this._abs=new Kd({context:this.context,mapping:t=>Math.abs(t)<.001?0:Math.abs(t)}),this.input=this._abs,this.output=this._abs}dispose(){return super.dispose(),this._abs.dispose(),this}}class xf extends Jd{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new Kd({context:this.context,mapping:t=>2*Math.abs(t)-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class wf extends Jd{constructor(){super(...arguments),this.name="Negate",this._multiply=new ef({context:this.context,value:-1}),this.input=this._multiply,this.output=this._multiply}dispose(){return super.dispose(),this._multiply.dispose(),this}}class bf extends Td{constructor(){super(Object.assign(Cp(bf.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Subtract",this._sum=new xd({context:this.context}),this.input=this._sum,this.output=this._sum,this._neg=new wf({context:this.context}),this.subtrahend=this._param,gd(this._constantSource,this._neg,this._sum)}static getDefaults(){return Object.assign(Td.getDefaults(),{value:0})}dispose(){return super.dispose(),this._neg.dispose(),this._sum.dispose(),this}}class Tf extends Jd{constructor(){super(Object.assign(Cp(Tf.getDefaults(),arguments))),this.name="GreaterThanZero",this._thresh=this.output=new Kd({context:this.context,length:127,mapping:t=>t<=0?0:1}),this._scale=this.input=new ef({context:this.context,value:1e4}),this._scale.connect(this._thresh)}dispose(){return super.dispose(),this._scale.dispose(),this._thresh.dispose(),this}}class Sf extends Td{constructor(){super(Object.assign(Cp(Sf.getDefaults(),arguments,["value"]))),this.name="GreaterThan",this.override=!1;var t=Cp(Sf.getDefaults(),arguments,["value"]);this._subtract=this.input=new bf({context:this.context,value:t.value}),this._gtz=this.output=new Tf({context:this.context}),this.comparator=this._param=this._subtract.subtrahend,Gp(this,"comparator"),this._subtract.connect(this._gtz)}static getDefaults(){return Object.assign(Td.getDefaults(),{value:0})}dispose(){return super.dispose(),this._gtz.dispose(),this._subtract.dispose(),this.comparator.dispose(),this}}class kf extends Jd{constructor(){super(Object.assign(Cp(kf.getDefaults(),arguments,["value"]))),this.name="Pow";var t=Cp(kf.getDefaults(),arguments,["value"]);this._exponentScaler=this.input=this.output=new Kd({context:this.context,mapping:this._expFunc(t.value),length:8192}),this._exponent=t.value}static getDefaults(){return Object.assign(Jd.getDefaults(),{value:1})}_expFunc(e){return t=>Math.pow(Math.abs(t),e)}get value(){return this._exponent}set value(t){this._exponent=t,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}}class Af extends uf{constructor(){super(Object.assign(Cp(Af.getDefaults(),arguments,["min","max","exponent"]))),this.name="ScaleExp";var t=Cp(Af.getDefaults(),arguments,["min","max","exponent"]);this.input=this._exp=new kf({context:this.context,value:t.exponent}),this._exp.connect(this._mult)}static getDefaults(){return Object.assign(uf.getDefaults(),{exponent:1})}get exponent(){return this._exp.value}set exponent(t){this._exp.value=t}dispose(){return super.dispose(),this._exp.dispose(),this}}class Cf extends Td{constructor(){super(Cp(Td.getDefaults(),arguments,["value","units"])),this.name="SyncedSignal",this.override=!1;var t=Cp(Td.getDefaults(),arguments,["value","units"]);this._lastVal=t.value,this._synced=this.context.transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._syncedCallback=this._anchorValue.bind(this),this.context.transport.on("start",this._syncedCallback),this.context.transport.on("pause",this._syncedCallback),this.context.transport.on("stop",this._syncedCallback),this._constantSource.disconnect(),this._constantSource.stop(0),this._constantSource=this.output=new bd({context:this.context,offset:t.value,units:t.units}).start(0),this.setValueAtTime(t.value,0)}_onTick(t){var e=super.getValueAtTime(this.context.transport.seconds);this._lastVal!==e&&(this._lastVal=e,this._constantSource.offset.setValueAtTime(e,t))}_anchorValue(t){var e=super.getValueAtTime(this.context.transport.seconds);this._lastVal=e,this._constantSource.offset.cancelAndHoldAtTime(t),this._constantSource.offset.setValueAtTime(e,t)}getValueAtTime(t){t=new pd(this.context,t).toSeconds();return super.getValueAtTime(t)}setValueAtTime(t,e){e=new pd(this.context,e).toSeconds();return super.setValueAtTime(t,e),this}linearRampToValueAtTime(t,e){e=new pd(this.context,e).toSeconds();return super.linearRampToValueAtTime(t,e),this}exponentialRampToValueAtTime(t,e){e=new pd(this.context,e).toSeconds();return super.exponentialRampToValueAtTime(t,e),this}setTargetAtTime(t,e,s){e=new pd(this.context,e).toSeconds();return super.setTargetAtTime(t,e,s),this}cancelScheduledValues(t){t=new pd(this.context,t).toSeconds();return super.cancelScheduledValues(t),this}setValueCurveAtTime(t,e,s,n){e=new pd(this.context,e).toSeconds();return s=this.toSeconds(s),super.setValueCurveAtTime(t,e,s,n),this}cancelAndHoldAtTime(t){t=new pd(this.context,t).toSeconds();return super.cancelAndHoldAtTime(t),this}setRampPoint(t){t=new pd(this.context,t).toSeconds();return super.setRampPoint(t),this}exponentialRampTo(t,e,s){s=new pd(this.context,s).toSeconds();return super.exponentialRampTo(t,e,s),this}linearRampTo(t,e,s){s=new pd(this.context,s).toSeconds();return super.linearRampTo(t,e,s),this}targetRampTo(t,e,s){s=new pd(this.context,s).toSeconds();return super.targetRampTo(t,e,s),this}dispose(){return super.dispose(),this.context.transport.clear(this._synced),this.context.transport.off("start",this._syncedCallback),this.context.transport.off("pause",this._syncedCallback),this.context.transport.off("stop",this._syncedCallback),this._constantSource.dispose(),this}}class Df extends md{constructor(){super(Cp(Df.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="Envelope",this._sig=new Td({context:this.context,value:0}),this.output=this._sig,this.input=void 0;var t=Cp(Df.getDefaults(),arguments,["attack","decay","sustain","release"]);this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve}static getDefaults(){return Object.assign(md.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(e,s){if(ip(e))return e;{let t;for(t in Of)if(Of[t][s]===e)return t;return e}}_setCurve(t,e,s){if(ip(s)&&Reflect.has(Of,s)){var n=Of[s];ep(n)?"_decayCurve"!==t&&(this[t]=n[e]):this[t]=n}else{if(!np(s)||"_decayCurve"===t)throw new Error("Envelope: invalid curve: "+s);this[t]=s}}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(t){this._setCurve("_attackCurve","In",t)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(t){this._setCurve("_releaseCurve","Out",t)}get decayCurve(){return this._decayCurve}set decayCurve(e){op(["linear","exponential"].some(t=>t===e),`Invalid envelope curve: ${e}`),this._decayCurve=e}triggerAttack(t,s=1){this.log("triggerAttack",t,s),t=this.toSeconds(t);let n=this.toSeconds(this.attack);const e=this.toSeconds(this.decay),i=this.getValueAtTime(t);if(0{const t=128;let e,s;const n=[];for(e=0;ethis._original_triggerRelease(t);var t=Cp(Mf.getDefaults(),arguments);this._volume=this.output=new Vd({context:this.context,volume:t.volume}),this.volume=this._volume.volume,Gp(this,"volume")}static getDefaults(){return Object.assign(md.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this.context.transport.on("stop",this._syncedRelease),this.context.transport.on("pause",this._syncedRelease),this.context.transport.on("loopEnd",this._syncedRelease)),this}_syncState(){let t=!1;return this._synced||(this._synced=!0,t=!0),t}_syncMethod(t,s){const n=this["_original_"+t]=this[t];this[t]=(...e)=>{var t=e[s],t=this.context.transport.schedule(t=>{e[s]=t,n.apply(this,e)},t);this._scheduledEvents.push(t)}}unsync(){return this._scheduledEvents.forEach(t=>this.context.transport.clear(t)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease,this.context.transport.off("stop",this._syncedRelease),this.context.transport.off("pause",this._syncedRelease),this.context.transport.off("loopEnd",this._syncedRelease)),this}triggerAttackRelease(t,e,s,n){s=this.toSeconds(s),e=this.toSeconds(e);return this.triggerAttack(t,s,n),this.triggerRelease(s+e),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}}class Ef extends Mf{constructor(){super(Cp(Ef.getDefaults(),arguments));var t=Cp(Ef.getDefaults(),arguments);this.portamento=t.portamento,this.onsilence=t.onsilence}static getDefaults(){return Object.assign(Mf.getDefaults(),{detune:0,onsilence:Zp,portamento:0})}triggerAttack(t,e,s=1){this.log("triggerAttack",t,e,s);e=this.toSeconds(e);return this._triggerEnvelopeAttack(e,s),this.setNote(t,e),this}triggerRelease(t){this.log("triggerRelease",t);t=this.toSeconds(t);return this._triggerEnvelopeRelease(t),this}setNote(t,e){e=this.toSeconds(e),t=t instanceof cd?t.toFrequency():t;if(0this.onsilence(this)},t.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new Rf(Object.assign({context:this.context},t.envelope)),this.oscillator.chain(this.envelope,this.output),Gp(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Ef.getDefaults(),{envelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(Op(cf.getDefaults(),[...Object.keys(Wd.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(t,e){if(this.envelope.triggerAttack(t,e),this.oscillator.start(t),0===this.envelope.sustain){const e=this.toSeconds(this.envelope.attack),s=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+e+s)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}}class Ff extends Ef{constructor(){super(Cp(Ff.getDefaults(),arguments)),this.name="ModulationSynth";var t=Cp(Ff.getDefaults(),arguments);this._carrier=new qf({context:this.context,oscillator:t.oscillator,envelope:t.envelope,onsilence:()=>this.onsilence(this),volume:-10}),this._modulator=new qf({context:this.context,oscillator:t.modulation,envelope:t.modulationEnvelope,volume:-10}),this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope,this.modulation=this._modulator.oscillator,this.modulationEnvelope=this._modulator.envelope,this.frequency=new Td({context:this.context,units:"frequency"}),this.detune=new Td({context:this.context,value:t.detune,units:"cents"}),this.harmonicity=new ef({context:this.context,value:t.harmonicity,minValue:0}),this._modulationNode=new xd({context:this.context,gain:0}),Gp(this,["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])}static getDefaults(){return Object.assign(Ef.getDefaults(),{harmonicity:3,oscillator:Object.assign(Op(cf.getDefaults(),[...Object.keys(Wd.getDefaults()),"frequency","detune"]),{type:"sine"}),envelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{attack:.01,decay:.01,sustain:1,release:.5}),modulation:Object.assign(Op(cf.getDefaults(),[...Object.keys(Wd.getDefaults()),"frequency","detune"]),{type:"square"}),modulationEnvelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{attack:.5,decay:0,sustain:1,release:.5})})}_triggerEnvelopeAttack(t,e){this._carrier._triggerEnvelopeAttack(t,e),this._modulator._triggerEnvelopeAttack(t,e)}_triggerEnvelopeRelease(t){return this._carrier._triggerEnvelopeRelease(t),this._modulator._triggerEnvelopeRelease(t),this}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this._carrier.dispose(),this._modulator.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._modulationNode.dispose(),this}}class If extends Ff{constructor(){super(Cp(If.getDefaults(),arguments)),this.name="AMSynth",this._modulationScale=new tf({context:this.context}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output)}dispose(){return super.dispose(),this._modulationScale.dispose(),this}}class Vf extends md{constructor(){super(Cp(Vf.getDefaults(),arguments,["frequency","type"])),this.name="BiquadFilter";var t=Cp(Vf.getDefaults(),arguments,["frequency","type"]);this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new _d({context:this.context,units:"number",value:t.Q,param:this._filter.Q}),this.frequency=new _d({context:this.context,units:"frequency",value:t.frequency,param:this._filter.frequency}),this.detune=new _d({context:this.context,units:"cents",value:t.detune,param:this._filter.detune}),this.gain=new _d({context:this.context,units:"decibels",convert:!1,value:t.gain,param:this._filter.gain}),this.type=t.type}static getDefaults(){return Object.assign(md.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(t){op(-1!==["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t),`Invalid filter type: ${t}`),this._filter.type=t}getFrequencyResponse(e=128){const s=new Float32Array(e);for(let t=0;tt.type=e)}get rolloff(){return this._rolloff}set rolloff(t){const e=tp(t)?t:parseInt(t,10),s=[-12,-24,-48,-96];var n=s.indexOf(e);op(-1!==n,`rolloff can only be ${s.join(", ")}`),n+=1,this._rolloff=e,this.input.disconnect(),this._filters.forEach(t=>t.disconnect()),this._filters=new Array(n);for(let t=0;t1);return this._filters.forEach(()=>{e.getFrequencyResponse(t).forEach((t,e)=>s[e]*=t)}),e.dispose(),s}dispose(){return super.dispose(),this._filters.forEach(t=>{t.dispose()}),Qp(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}}class Pf extends Df{constructor(){super(Cp(Pf.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="FrequencyEnvelope";var t=Cp(Pf.getDefaults(),arguments,["attack","decay","sustain","release"]);this._octaves=t.octaves,this._baseFrequency=this.toFrequency(t.baseFrequency),this._exponent=this.input=new kf({context:this.context,value:t.exponent}),this._scale=this.output=new uf({context:this.context,min:this._baseFrequency,max:this._baseFrequency*Math.pow(2,this._octaves)}),this._sig.chain(this._exponent,this._scale)}static getDefaults(){return Object.assign(Df.getDefaults(),{baseFrequency:200,exponent:1,octaves:4})}get baseFrequency(){return this._baseFrequency}set baseFrequency(t){t=this.toFrequency(t);ap(t,0),this._baseFrequency=t,this._scale.min=this._baseFrequency,this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._scale.max=this._baseFrequency*Math.pow(2,t)}get exponent(){return this._exponent.value}set exponent(t){this._exponent.value=t}dispose(){return super.dispose(),this._exponent.dispose(),this._scale.dispose(),this}}class jf extends Ef{constructor(){super(Cp(jf.getDefaults(),arguments)),this.name="MonoSynth";var t=Cp(jf.getDefaults(),arguments);this.oscillator=new cf(Object.assign(t.oscillator,{context:this.context,detune:t.detune,onstop:()=>this.onsilence(this)})),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new Nf(Object.assign(t.filter,{context:this.context})),this.filterEnvelope=new Pf(Object.assign(t.filterEnvelope,{context:this.context})),this.envelope=new Rf(Object.assign(t.envelope,{context:this.context})),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),Gp(this,["oscillator","frequency","detune","filter","filterEnvelope","envelope"])}static getDefaults(){return Object.assign(Ef.getDefaults(),{envelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.9}),filter:Object.assign(Op(Nf.getDefaults(),Object.keys(md.getDefaults())),{Q:1,rolloff:-12,type:"lowpass"}),filterEnvelope:Object.assign(Op(Pf.getDefaults(),Object.keys(md.getDefaults())),{attack:.6,baseFrequency:200,decay:.2,exponent:2,octaves:3,release:2,sustain:.5}),oscillator:Object.assign(Op(cf.getDefaults(),Object.keys(Wd.getDefaults())),{type:"sawtooth"})})}_triggerEnvelopeAttack(t,e=1){if(this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this.oscillator.start(t),0===this.envelope.sustain){const e=this.toSeconds(this.envelope.attack),s=this.toSeconds(this.envelope.decay);this.oscillator.stop(t+e+s)}}_triggerEnvelopeRelease(t){this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release))}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this.filterEnvelope.dispose(),this.filter.dispose(),this}}class Lf extends Ef{constructor(){super(Cp(Lf.getDefaults(),arguments)),this.name="DuoSynth";var t=Cp(Lf.getDefaults(),arguments);this.voice0=new jf(Object.assign(t.voice0,{context:this.context,onsilence:()=>this.onsilence(this)})),this.voice1=new jf(Object.assign(t.voice1,{context:this.context})),this.harmonicity=new ef({context:this.context,units:"positive",value:t.harmonicity}),this._vibrato=new df({frequency:t.vibratoRate,context:this.context,min:-50,max:50}),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new xd({context:this.context,units:"normalRange",gain:t.vibratoAmount}),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new Td({context:this.context,units:"frequency",value:440}),this.detune=new Td({context:this.context,units:"cents",value:t.detune}),this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.detune.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),Gp(this,["voice0","voice1","frequency","vibratoAmount","vibratoRate"])}getLevelAtTime(t){return t=this.toSeconds(t),this.voice0.envelope.getValueAtTime(t)+this.voice1.envelope.getValueAtTime(t)}static getDefaults(){return Ap(Ef.getDefaults(),{vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:Ap(Op(jf.getDefaults(),Object.keys(Ef.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}),voice1:Ap(Op(jf.getDefaults(),Object.keys(Ef.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}})})}_triggerEnvelopeAttack(t,e){this.voice0._triggerEnvelopeAttack(t,e),this.voice1._triggerEnvelopeAttack(t,e)}_triggerEnvelopeRelease(t){return this.voice0._triggerEnvelopeRelease(t),this.voice1._triggerEnvelopeRelease(t),this}dispose(){return super.dispose(),this.voice0.dispose(),this.voice1.dispose(),this.frequency.dispose(),this.detune.dispose(),this._vibrato.dispose(),this.vibratoRate.dispose(),this._vibratoGain.dispose(),this.harmonicity.dispose(),this}}class zf extends Ff{constructor(){super(Cp(zf.getDefaults(),arguments)),this.name="FMSynth";var t=Cp(zf.getDefaults(),arguments);this.modulationIndex=new ef({context:this.context,value:t.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output)}static getDefaults(){return Object.assign(Ff.getDefaults(),{modulationIndex:10})}dispose(){return super.dispose(),this.modulationIndex.dispose(),this}}const Wf=[1,1.483,1.932,2.546,2.63,3.897];class Bf extends Ef{constructor(){super(Cp(Bf.getDefaults(),arguments)),this.name="MetalSynth",this._oscillators=[],this._freqMultipliers=[];var e=Cp(Bf.getDefaults(),arguments);this.detune=new Td({context:this.context,units:"cents",value:e.detune}),this.frequency=new Td({context:this.context,units:"frequency"}),this._amplitude=new xd({context:this.context,gain:0}).connect(this.output),this._highpass=new Nf({Q:0,context:this.context,type:"highpass"}).connect(this._amplitude);for(let t=0;tthis.onsilence(this):Zp,type:"square"});n.connect(this._highpass),this._oscillators[t]=n;var s=new ef({context:this.context,value:Wf[t]});this._freqMultipliers[t]=s,this.frequency.chain(s,n.frequency),this.detune.connect(n.detune)}this._filterFreqScaler=new uf({context:this.context,max:7e3,min:this.toFrequency(e.resonance)}),this.envelope=new Df({attack:e.envelope.attack,attackCurve:"linear",context:this.context,decay:e.envelope.decay,release:e.envelope.release,sustain:0}),this.envelope.chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitude.gain),this._octaves=e.octaves,this.octaves=e.octaves}static getDefaults(){return Ap(Ef.getDefaults(),{envelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{attack:.001,decay:1.4,release:.2}),harmonicity:5.1,modulationIndex:32,octaves:1.5,resonance:4e3})}_triggerEnvelopeAttack(e,t=1){return this.envelope.triggerAttack(e,t),this._oscillators.forEach(t=>t.start(e)),0===this.envelope.sustain&&this._oscillators.forEach(t=>{t.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay))}),this}_triggerEnvelopeRelease(e){return this.envelope.triggerRelease(e),this._oscillators.forEach(t=>t.stop(e+this.toSeconds(this.envelope.release))),this}getLevelAtTime(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)}get modulationIndex(){return this._oscillators[0].modulationIndex.value}set modulationIndex(e){this._oscillators.forEach(t=>t.modulationIndex.value=e)}get harmonicity(){return this._oscillators[0].harmonicity.value}set harmonicity(e){this._oscillators.forEach(t=>t.harmonicity.value=e)}get resonance(){return this._filterFreqScaler.min}set resonance(t){this._filterFreqScaler.min=this.toFrequency(t),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}dispose(){return super.dispose(),this._oscillators.forEach(t=>t.dispose()),this._freqMultipliers.forEach(t=>t.dispose()),this.frequency.dispose(),this.detune.dispose(),this._filterFreqScaler.dispose(),this._amplitude.dispose(),this.envelope.dispose(),this._highpass.dispose(),this}}class Uf extends qf{constructor(){super(Cp(Uf.getDefaults(),arguments)),this.name="MembraneSynth",this.portamento=0;var t=Cp(Uf.getDefaults(),arguments);this.pitchDecay=t.pitchDecay,this.octaves=t.octaves,Gp(this,["oscillator","envelope"])}static getDefaults(){return Ap(Ef.getDefaults(),qf.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(t,e){var s=this.toSeconds(e),e=this.toFrequency(t instanceof cd?t.toFrequency():t),t=e*this.octaves;return this.oscillator.frequency.setValueAtTime(t,s),this.oscillator.frequency.exponentialRampToValueAtTime(e,s+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}}vp([ff(0)],Uf.prototype,"octaves",void 0),vp([_f(0)],Uf.prototype,"pitchDecay",void 0);class Gf extends Mf{constructor(){super(Cp(Gf.getDefaults(),arguments)),this.name="NoiseSynth";var t=Cp(Gf.getDefaults(),arguments);this.noise=new Ud(Object.assign({context:this.context},t.noise)),this.envelope=new Rf(Object.assign({context:this.context},t.envelope)),this.noise.chain(this.envelope,this.output)}static getDefaults(){return Object.assign(Mf.getDefaults(),{envelope:Object.assign(Op(Df.getDefaults(),Object.keys(md.getDefaults())),{decay:.1,sustain:0}),noise:Object.assign(Op(Ud.getDefaults(),Object.keys(Wd.getDefaults())),{type:"white"})})}triggerAttack(t,e=1){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.noise.start(t),0===this.envelope.sustain&&this.noise.stop(t+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this}triggerRelease(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.noise.stop(t+this.toSeconds(this.envelope.release)),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0)),this}triggerAttackRelease(t,e,s=1){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,s),this.triggerRelease(e+t),this}dispose(){return super.dispose(),this.noise.dispose(),this.envelope.dispose(),this}}const Qf=new Set;function Zf(t){Qf.add(t)}function Xf(t,e){e=`registerProcessor("${t}", ${e})`;Qf.add(e)}class Yf extends md{constructor(t){super(t),this.name="ToneAudioWorklet",this.workletOptions={},this.onprocessorerror=Zp;const e=URL.createObjectURL(new Blob([Array.from(Qf).join("\n")],{type:"text/javascript"})),s=this._audioWorkletName();this._dummyGain=this.context.createGain(),this._dummyParam=this._dummyGain.gain,this.context.addAudioWorkletModule(e,s).then(()=>{this.disposed||(this._worklet=this.context.createAudioWorkletNode(s,this.workletOptions),this._worklet.onprocessorerror=this.onprocessorerror.bind(this),this.onReady(this._worklet))})}dispose(){return super.dispose(),this._dummyGain.disconnect(),this._worklet&&(this._worklet.port.postMessage("dispose"),this._worklet.disconnect()),this}}Zf('\n\t/**\n\t * The base AudioWorkletProcessor for use in Tone.js. Works with the [[ToneAudioWorklet]]. \n\t */\n\tclass ToneAudioWorkletProcessor extends AudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\t\n\t\t\tsuper(options);\n\t\t\t/**\n\t\t\t * If the processor was disposed or not. Keep alive until it\'s disposed.\n\t\t\t */\n\t\t\tthis.disposed = false;\n\t\t \t/** \n\t\t\t * The number of samples in the processing block\n\t\t\t */\n\t\t\tthis.blockSize = 128;\n\t\t\t/**\n\t\t\t * the sample rate\n\t\t\t */\n\t\t\tthis.sampleRate = sampleRate;\n\n\t\t\tthis.port.onmessage = (event) => {\n\t\t\t\t// when it receives a dispose \n\t\t\t\tif (event.data === "dispose") {\n\t\t\t\t\tthis.disposed = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n'),Zf("\n\t/**\n\t * Abstract class for a single input/output processor. \n\t * has a 'generate' function which processes one sample at a time\n\t */\n\tclass SingleIOProcessor extends ToneAudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(Object.assign(options, {\n\t\t\t\tnumberOfInputs: 1,\n\t\t\t\tnumberOfOutputs: 1\n\t\t\t}));\n\t\t\t/**\n\t\t\t * Holds the name of the parameter and a single value of that\n\t\t\t * parameter at the current sample\n\t\t\t * @type { [name: string]: number }\n\t\t\t */\n\t\t\tthis.params = {}\n\t\t}\n\n\t\t/**\n\t\t * Generate an output sample from the input sample and parameters\n\t\t * @abstract\n\t\t * @param input number\n\t\t * @param channel number\n\t\t * @param parameters { [name: string]: number }\n\t\t * @returns number\n\t\t */\n\t\tgenerate(){}\n\n\t\t/**\n\t\t * Update the private params object with the \n\t\t * values of the parameters at the given index\n\t\t * @param parameters { [name: string]: Float32Array },\n\t\t * @param index number\n\t\t */\n\t\tupdateParams(parameters, index) {\n\t\t\tfor (const paramName in parameters) {\n\t\t\t\tconst param = parameters[paramName];\n\t\t\t\tif (param.length > 1) {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][index];\n\t\t\t\t} else {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Process a single frame of the audio\n\t\t * @param inputs Float32Array[][]\n\t\t * @param outputs Float32Array[][]\n\t\t */\n\t\tprocess(inputs, outputs, parameters) {\n\t\t\tconst input = inputs[0];\n\t\t\tconst output = outputs[0];\n\t\t\t// get the parameter values\n\t\t\tconst channelCount = Math.max(input && input.length || 0, output.length);\n\t\t\tfor (let sample = 0; sample < this.blockSize; sample++) {\n\t\t\t\tthis.updateParams(parameters, sample);\n\t\t\t\tfor (let channel = 0; channel < channelCount; channel++) {\n\t\t\t\t\tconst inputSample = input && input.length ? input[channel][sample] : 0;\n\t\t\t\t\toutput[channel][sample] = this.generate(inputSample, channel, this.params);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn !this.disposed;\n\t\t}\n\t};\n"),Zf("\n\t/**\n\t * A multichannel buffer for use within an AudioWorkletProcessor as a delay line\n\t */\n\tclass DelayLine {\n\t\t\n\t\tconstructor(size, channels) {\n\t\t\tthis.buffer = [];\n\t\t\tthis.writeHead = []\n\t\t\tthis.size = size;\n\n\t\t\t// create the empty channels\n\t\t\tfor (let i = 0; i < channels; i++) {\n\t\t\t\tthis.buffer[i] = new Float32Array(this.size);\n\t\t\t\tthis.writeHead[i] = 0;\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Push a value onto the end\n\t\t * @param channel number\n\t\t * @param value number\n\t\t */\n\t\tpush(channel, value) {\n\t\t\tthis.writeHead[channel] += 1;\n\t\t\tif (this.writeHead[channel] > this.size) {\n\t\t\t\tthis.writeHead[channel] = 0;\n\t\t\t}\n\t\t\tthis.buffer[channel][this.writeHead[channel]] = value;\n\t\t}\n\n\t\t/**\n\t\t * Get the recorded value of the channel given the delay\n\t\t * @param channel number\n\t\t * @param delay number delay samples\n\t\t */\n\t\tget(channel, delay) {\n\t\t\tlet readHead = this.writeHead[channel] - Math.floor(delay);\n\t\t\tif (readHead < 0) {\n\t\t\t\treadHead += this.size;\n\t\t\t}\n\t\t\treturn this.buffer[channel][readHead];\n\t\t}\n\t}\n");const $f="feedback-comb-filter";Xf($f,'\n\tclass FeedbackCombFilterWorklet extends SingleIOProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(options);\n\t\t\tthis.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);\n\t\t}\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: "delayTime",\n\t\t\t\tdefaultValue: 0.1,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 1,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}, {\n\t\t\t\tname: "feedback",\n\t\t\t\tdefaultValue: 0.5,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 0.9999,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, channel, parameters) {\n\t\t\tconst delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);\n\t\t\tthis.delayLine.push(channel, input + delayedSample * parameters.feedback);\n\t\t\treturn delayedSample;\n\t\t}\n\t}\n');class Hf extends Yf{constructor(){super(Cp(Hf.getDefaults(),arguments,["delayTime","resonance"])),this.name="FeedbackCombFilter";var t=Cp(Hf.getDefaults(),arguments,["delayTime","resonance"]);this.input=new xd({context:this.context}),this.output=new xd({context:this.context}),this.delayTime=new _d({context:this.context,value:t.delayTime,units:"time",minValue:0,maxValue:1,param:this._dummyParam,swappable:!0}),this.resonance=new _d({context:this.context,value:t.resonance,units:"normalRange",param:this._dummyParam,swappable:!0}),Gp(this,["resonance","delayTime"])}_audioWorkletName(){return $f}static getDefaults(){return Object.assign(md.getDefaults(),{delayTime:.1,resonance:.5})}onReady(t){gd(this.input,t,this.output);var e=t.parameters.get("delayTime");this.delayTime.setParam(e);t=t.parameters.get("feedback");this.resonance.setParam(t)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.delayTime.dispose(),this.resonance.dispose(),this}}class Jf extends md{constructor(){super(Cp(Jf.getDefaults(),arguments,["frequency","type"])),this.name="OnePoleFilter";var t=Cp(Jf.getDefaults(),arguments,["frequency","type"]);this._frequency=t.frequency,this._type=t.type,this.input=new xd({context:this.context}),this.output=new xd({context:this.context}),this._createFilter()}static getDefaults(){return Object.assign(md.getDefaults(),{frequency:880,type:"lowpass"})}_createFilter(){const t=this._filter,e=this.toFrequency(this._frequency),s=1/(2*Math.PI*e);if("lowpass"===this._type){const t=1/(s*this.context.sampleRate),e=t-1;this._filter=this.context.createIIRFilter([t,0],[1,e])}else{const t=1/(s*this.context.sampleRate)-1;this._filter=this.context.createIIRFilter([1,-1],[1,t])}this.input.chain(this._filter,this.output),t&&this.context.setTimeout(()=>{this.disposed||(this.input.disconnect(t),t.disconnect())},this.blockTime)}get frequency(){return this._frequency}set frequency(t){this._frequency=t,this._createFilter()}get type(){return this._type}set type(t){this._type=t,this._createFilter()}getFrequencyResponse(e=128){const s=new Float32Array(e);for(let t=0;tthis.releaseAll(t);const t=Cp(e_.getDefaults(),arguments,["voice","options"]);op(!tp(t.voice),"DEPRECATED: The polyphony count is no longer the first argument.");var e=t.voice.getDefaults();this.options=Object.assign(e,t.options),this.voice=t.voice,this.maxPolyphony=t.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();e=this._voices.indexOf(this._dummyVoice);this._voices.splice(e,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Mf.getDefaults(),{maxPolyphony:32,options:{},voice:qf})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(e){this._availableVoices.push(e);var t=this._activeVoices.findIndex(t=>t.voice===e);this._activeVoices.splice(t,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.lengthMath.ceil(this._averageActiveVoices+1)){const t=this._availableVoices.shift(),e=this._voices.indexOf(t);this._voices.splice(e,1),this.context.isOffline||t.dispose()}}_triggerAttack(t,n,i){t.forEach(t=>{const e=new Ed(this.context,t).toMidi(),s=this._getNextAvailableVoice();s&&(s.triggerAttack(t,n,i),this._activeVoices.push({midi:e,voice:s,released:!1}),this.log("triggerAttack",t,n))})}_triggerRelease(t,n){t.forEach(t=>{const s=new Ed(this.context,t).toMidi(),e=this._activeVoices.find(({midi:t,released:e})=>t===s&&!e);e&&(e.voice.triggerRelease(n),e.released=!0,this.log("triggerRelease",t,n))})}_scheduleEvent(t,e,s,n){op(!this.disposed,"Synth was already disposed"),s<=this.now()?"attack"===t?this._triggerAttack(e,s,n):this._triggerRelease(e,s):this.context.setTimeout(()=>{this.disposed||this._scheduleEvent(t,e,s,n)},s-this.now())}triggerAttack(t,e,s){Array.isArray(t)||(t=[t]);e=this.toSeconds(e);return this._scheduleEvent("attack",t,e,s),this}triggerRelease(t,e){Array.isArray(t)||(t=[t]);e=this.toSeconds(e);return this._scheduleEvent("release",t,e),this}triggerAttackRelease(e,s,t,n){var i=this.toSeconds(t);if(this.triggerAttack(e,i,n),np(s)){op(np(e),"If the duration is an array, the notes must also be an array");for(let t=0;tt.set(e)),this._dummyVoice.set(e),this}get(){return this._dummyVoice.get()}releaseAll(t){const e=this.toSeconds(t);return this._activeVoices.forEach(({voice:t})=>{t.triggerRelease(e)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(t=>t.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}}class s_ extends Mf{constructor(){super(Cp(s_.getDefaults(),arguments,["urls","onload","baseUrl"],"urls")),this.name="Sampler",this._activeSources=new Map;const s=Cp(s_.getDefaults(),arguments,["urls","onload","baseUrl"],"urls"),n={};Object.keys(s.urls).forEach(t=>{const e=parseInt(t,10);if(op(rp(t)||tp(e)&&isFinite(e),`url key is neither a note or midi pitch: ${t}`),rp(t)){const e=new cd(this.context,t).toMidi();n[e]=s.urls[t]}else tp(e)&&isFinite(e)&&(n[e]=s.urls[e])}),this._buffers=new Md({urls:n,onload:s.onload,baseUrl:s.baseUrl,onerror:s.onerror}),this.attack=s.attack,this.release=s.release,this.curve=s.curve,this._buffers.loaded&&Promise.resolve().then(s.onload)}static getDefaults(){return Object.assign(Mf.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:Zp,onerror:Zp,release:.1,urls:{}})}_findClosest(t){let e=0;for(;e<96;){if(this._buffers.has(t+e))return-e;if(this._buffers.has(t-e))return e;e++}throw new Error(`No available buffers for note: ${t}`)}triggerAttack(t,c,l=1){return this.log("triggerAttack",t,c,l),(t=!Array.isArray(t)?[t]:t).forEach(t=>{const e=rd(new cd(this.context,t).toFrequency()),s=Math.round(e),n=e-s,i=this._findClosest(s),r=s-i,o=this._buffers.get(r),a=sd(i+n),h=new Bd({url:o,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:a}).connect(this.output);h.start(c,0,o.duration/a,l),np(this._activeSources.get(s))||this._activeSources.set(s,[]),this._activeSources.get(s).push(h),h.onended=()=>{if(this._activeSources&&this._activeSources.has(s)){const t=this._activeSources.get(s),e=t.indexOf(h);-1!==e&&t.splice(e,1)}}}),this}triggerRelease(t,s){return this.log("triggerRelease",t,s),(t=!Array.isArray(t)?[t]:t).forEach(t=>{t=new cd(this.context,t).toMidi();if(this._activeSources.has(t)&&this._activeSources.get(t).length){const e=this._activeSources.get(t);s=this.toSeconds(s),e.forEach(t=>{t.stop(s)}),this._activeSources.set(t,[])}}),this}releaseAll(t){const e=this.toSeconds(t);return this._activeSources.forEach(t=>{for(;t.length;)t.shift().stop(e)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(t,s,e,n=1){const i=this.toSeconds(e);return this.triggerAttack(t,i,n),np(s)?(op(np(t),"notes must be an array when duration is array"),t.forEach((t,e)=>{e=s[Math.min(e,s.length-1)];this.triggerRelease(t,i+this.toSeconds(e))})):this.triggerRelease(t,i+this.toSeconds(s)),this}add(t,e,s){var n;return op(rp(t)||isFinite(t),`note must be a pitch or midi: ${t}`),rp(t)?(n=new cd(this.context,t).toMidi(),this._buffers.add(n,e,s)):this._buffers.add(t,e,s),this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(t=>{t.forEach(t=>t.dispose())}),this._activeSources.clear(),this}}vp([_f(0)],s_.prototype,"attack",void 0),vp([_f(0)],s_.prototype,"release",void 0);class n_ extends dd{constructor(){super(Cp(n_.getDefaults(),arguments,["callback","value"])),this.name="ToneEvent",this._state=new fd("stopped"),this._startOffset=0;var t=Cp(n_.getDefaults(),arguments,["callback","value"]);this._loop=t.loop,this.callback=t.callback,this.value=t.value,this._loopStart=this.toTicks(t.loopStart),this._loopEnd=this.toTicks(t.loopEnd),this._playbackRate=t.playbackRate,this._probability=t.probability,this._humanize=t.humanize,this.mute=t.mute,this._playbackRate=t.playbackRate,this._state.increasing=!0,this._rescheduleEvents()}static getDefaults(){return Object.assign(dd.getDefaults(),{callback:Zp,humanize:!1,loop:!1,loopEnd:"1m",loopStart:0,mute:!1,playbackRate:1,probability:1,value:null})}_rescheduleEvents(t=-1){this._state.forEachFrom(t,t=>{let e;var s,n;"started"===t.state&&(-1!==t.id&&this.context.transport.clear(t.id),s=t.time+Math.round(this.startOffset/this._playbackRate),!0===this._loop||tp(this._loop)&&1{this.context.transport.clear(t.id)}),this._state.cancel(t),this}_tick(e){var t=this.context.transport.getTicksAtTime(e);if(!(this.mute||"started"!==this._state.getValueAtTime(t)||this.probability<1&&Math.random()>this.probability)){if(this.humanize){let t=.02;sp(this.humanize)||(t=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*t}this.callback(e,this.value)}}_getLoopDuration(){return(this._loopEnd-this._loopStart)/this._playbackRate}get loop(){return this._loop}set loop(t){this._loop=t,this._rescheduleEvents()}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._rescheduleEvents()}get loopEnd(){return new Rd(this.context,this._loopEnd).toSeconds()}set loopEnd(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}get loopStart(){return new Rd(this.context,this._loopStart).toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}get progress(){if(this._loop){var t=this.context.transport.ticks,e=this._state.get(t);if(null===e||"started"!==e.state)return 0;var s=this._getLoopDuration();return(t-e.time)%s/s}return 0}dispose(){return super.dispose(),this.cancel(),this._state.dispose(),this}}class i_ extends dd{constructor(){super(Cp(i_.getDefaults(),arguments,["callback","interval"])),this.name="Loop";var t=Cp(i_.getDefaults(),arguments,["callback","interval"]);this._event=new n_({context:this.context,callback:this._tick.bind(this),loop:!0,loopEnd:t.interval,playbackRate:t.playbackRate,probability:t.probability}),this.callback=t.callback,this.iterations=t.iterations}static getDefaults(){return Object.assign(dd.getDefaults(),{interval:"4n",callback:Zp,playbackRate:1,iterations:1/0,probability:1,mute:!1,humanize:!1})}start(t){return this._event.start(t),this}stop(t){return this._event.stop(t),this}cancel(t){return this._event.cancel(t),this}_tick(t){this.callback(t)}get state(){return this._event.state}get progress(){return this._event.progress}get interval(){return this._event.loopEnd}set interval(t){this._event.loopEnd=t}get playbackRate(){return this._event.playbackRate}set playbackRate(t){this._event.playbackRate=t}get humanize(){return this._event.humanize}set humanize(t){this._event.humanize=t}get probability(){return this._event.probability}set probability(t){this._event.probability=t}get mute(){return this._event.mute}set mute(t){this._event.mute=t}get iterations(){return!0===this._event.loop?1/0:this._event.loop}set iterations(t){this._event.loop=t===1/0||t}dispose(){return super.dispose(),this._event.dispose(),this}}class r_ extends n_{constructor(){super(Cp(r_.getDefaults(),arguments,["callback","events"])),this.name="Part",this._state=new fd("stopped"),this._events=new Set;const t=Cp(r_.getDefaults(),arguments,["callback","events"]);this._state.increasing=!0,t.events.forEach(t=>{np(t)?this.add(t[0],t[1]):this.add(t)})}static getDefaults(){return Object.assign(n_.getDefaults(),{events:[]})}start(e,t){const s=this.toTicks(e);if("started"!==this._state.getValueAtTime(s)){t=Dp(t,this._loop?this._loopStart:0),t=this._loop?Dp(t,this._loopStart):Dp(t,0);const e=this.toTicks(t);this._state.add({id:-1,offset:e,state:"started",time:s}),this._forEach(t=>{this._startNote(t,s,e)})}return this}_startNote(t,e,s){e-=s,this._loop?t.startOffset>=this._loopStart&&t.startOffset=s&&(t.loop=!1,t.start(new Rd(this.context,e))):t.startOffset>=s&&t.start(new Rd(this.context,e))}get startOffset(){return this._startOffset}set startOffset(t){this._startOffset=t,this._forEach(t=>{t.startOffset+=this._startOffset})}stop(e){var t=this.toTicks(e);return this._state.cancel(t),this._state.setStateAtTime("stopped",t),this._forEach(t=>{t.stop(e)}),this}at(t,e){const s=new pd(this.context,t).toTicks(),n=new Rd(this.context,1).toSeconds(),i=this._events.values();let r=i.next();for(;!r.done;){const t=r.value;if(Math.abs(s-t.startOffset){"started"===t.state?this._startNote(e,t.time,t.offset):e.stop(new Rd(this.context,t.time))})}remove(e,s){return ep(e)&&e.hasOwnProperty("time")&&(e=(s=e).time),e=this.toTicks(e),this._events.forEach(t=>{t.startOffset===e&&(Hu(s)||Ju(s)&&t.value===s)&&(this._events.delete(t),t.dispose())}),this}clear(){return this._forEach(t=>t.dispose()),this._events.clear(),this}cancel(e){return this._forEach(t=>t.cancel(e)),this._state.cancel(this.toTicks(e)),this}_forEach(e){return this._events&&this._events.forEach(t=>{t instanceof r_?t._forEach(e):e(t)}),this}_setAll(e,s){this._forEach(t=>{t[e]=s})}_tick(t,e){this.mute||this.callback(t,e)}_testLoopBoundries(t){this._loop&&(t.startOffset=this._loopEnd)?t.cancel(0):"stopped"===t.state&&this._restartEvent(t)}get probability(){return this._probability}set probability(t){this._probability=t,this._setAll("probability",t)}get humanize(){return this._humanize}set humanize(t){this._humanize=t,this._setAll("humanize",t)}get loop(){return this._loop}set loop(e){this._loop=e,this._forEach(t=>{t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.loop=e,this._testLoopBoundries(t)})}get loopEnd(){return new Rd(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._forEach(t=>{t.loopEnd=e,this._testLoopBoundries(t)})}get loopStart(){return new Rd(this.context,this._loopStart).toSeconds()}set loopStart(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(t=>{t.loopStart=this.loopStart,this._testLoopBoundries(t)})}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this._setAll("playbackRate",t)}get length(){return this._events.size}dispose(){return super.dispose(),this.clear(),this}}function*o_(t){let e=0;for(;e=t.length-1&&(e=!1)):(s--,s<=0&&(e=!0))}function*u_(t){let e=0,s=0;for(;et[e],set:(t,e,s)=>(ip(e)&&isFinite(parseInt(e,10))&&np(s)?t[e]=this._createSequence(s):t[e]=s,this._eventsUpdated(),!0)})}_eventsUpdated(){this._part.clear(),this._rescheduleSequence(this._eventsArray,this._subdivision,this.startOffset),this.loopEnd=this.loopEnd}_rescheduleSequence(t,s,n){t.forEach((t,e)=>{e=e*s+n;if(np(t))this._rescheduleSequence(t,s/t.length,e);else{const s=new Rd(this.context,e,"i").toSeconds();this._part.add(s,t)}})}_indexTime(t){return new Rd(this.context,t*this._subdivision+this.startOffset).toSeconds()}clear(){return this._part.clear(),this}dispose(){return super.dispose(),this._part.dispose(),this}get loop(){return this._part.loop}set loop(t){this._part.loop=t}get loopStart(){return this._loopStart}set loopStart(t){this._loopStart=t,this._part.loopStart=this._indexTime(t)}get loopEnd(){return this._loopEnd}set loopEnd(t){this._loopEnd=t,this._part.loopEnd=0===t?this._indexTime(this._eventsArray.length):this._indexTime(t)}get startOffset(){return this._part.startOffset}set startOffset(t){this._part.startOffset=t}get playbackRate(){return this._part.playbackRate}set playbackRate(t){this._part.playbackRate=t}get probability(){return this._part.probability}set probability(t){this._part.probability=t}get progress(){return this._part.progress}get humanize(){return this._part.humanize}set humanize(t){this._part.humanize=t}get length(){return this._part.length}}class g_ extends md{constructor(){super(Object.assign(Cp(g_.getDefaults(),arguments,["fade"]))),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new xf({context:this.context}),this.a=new xd({context:this.context,gain:0}),this.b=new xd({context:this.context,gain:0}),this.output=new xd({context:this.context}),this._internalChannels=[this.a,this.b];var t=Cp(g_.getDefaults(),arguments,["fade"]);this.fade=new Td({context:this.context,units:"normalRange",value:t.fade}),Gp(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",vd(this._split,this.a.gain,0),vd(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(md.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}}class v_ extends md{constructor(t){super(t),this.name="Effect",this._dryWet=new g_({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new xd({context:this.context}),this.effectReturn=new xd({context:this.context}),this.input=new xd({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(t.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],Gp(this,"wet")}static getDefaults(){return Object.assign(md.getDefaults(),{wet:1})}connectEffect(t){return this._internalChannels.push(t),this.effectSend.chain(t,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}}class y_ extends v_{constructor(t){super(t),this.name="LFOEffect",this._lfo=new df({context:this.context,frequency:t.frequency,amplitude:t.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.type=t.type,Gp(this,["frequency","depth"])}static getDefaults(){return Object.assign(v_.getDefaults(),{frequency:1,type:"sine",depth:1})}start(t){return this._lfo.start(t),this}stop(t){return this._lfo.stop(t),this}sync(){return this._lfo.sync(),this}unsync(){return this._lfo.unsync(),this}get type(){return this._lfo.type}set type(t){this._lfo.type=t}dispose(){return super.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class x_ extends y_{constructor(){super(Cp(x_.getDefaults(),arguments,["frequency","baseFrequency","octaves"])),this.name="AutoFilter";var t=Cp(x_.getDefaults(),arguments,["frequency","baseFrequency","octaves"]);this.filter=new Nf(Object.assign(t.filter,{context:this.context})),this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.octaves=t.octaves,this.baseFrequency=t.baseFrequency}static getDefaults(){return Object.assign(y_.getDefaults(),{baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}})}get baseFrequency(){return this._lfo.min}set baseFrequency(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._lfo.max=this._lfo.min*Math.pow(2,t)}dispose(){return super.dispose(),this.filter.dispose(),this}}class w_ extends md{constructor(){super(Object.assign(Cp(w_.getDefaults(),arguments,["pan"]))),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner;var t=Cp(w_.getDefaults(),arguments,["pan"]);this.pan=new _d({context:this.context,param:this._panner.pan,value:t.pan,minValue:-1,maxValue:1}),this._panner.channelCount=t.channelCount,this._panner.channelCountMode="explicit",Gp(this,"pan")}static getDefaults(){return Object.assign(md.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}}class b_ extends y_{constructor(){super(Cp(b_.getDefaults(),arguments,["frequency"])),this.name="AutoPanner";var t=Cp(b_.getDefaults(),arguments,["frequency"]);this._panner=new w_({context:this.context,channelCount:t.channelCount}),this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this._lfo.min=-1,this._lfo.max=1}static getDefaults(){return Object.assign(y_.getDefaults(),{channelCount:1})}dispose(){return super.dispose(),this._panner.dispose(),this}}class T_ extends md{constructor(){super(Cp(T_.getDefaults(),arguments,["smoothing"])),this.name="Follower";var t=Cp(T_.getDefaults(),arguments,["smoothing"]);this._abs=this.input=new yf({context:this.context}),this._lowpass=this.output=new Jf({context:this.context,frequency:1/this.toSeconds(t.smoothing),type:"lowpass"}),this._abs.connect(this._lowpass),this._smoothing=t.smoothing}static getDefaults(){return Object.assign(md.getDefaults(),{smoothing:.05})}get smoothing(){return this._smoothing}set smoothing(t){this._smoothing=t,this._lowpass.frequency=1/this.toSeconds(this.smoothing)}dispose(){return super.dispose(),this._abs.dispose(),this._lowpass.dispose(),this}}class S_ extends v_{constructor(){super(Cp(S_.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"])),this.name="AutoWah";var t=Cp(S_.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"]);this._follower=new T_({context:this.context,smoothing:t.follower}),this._sweepRange=new Af({context:this.context,min:0,max:1,exponent:.5}),this._baseFrequency=this.toFrequency(t.baseFrequency),this._octaves=t.octaves,this._inputBoost=new xd({context:this.context}),this._bandpass=new Nf({context:this.context,rolloff:-48,frequency:0,Q:t.Q}),this._peaking=new Nf({context:this.context,type:"peaking"}),this._peaking.gain.value=t.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this._follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=t.sensitivity,Gp(this,["gain","Q"])}static getDefaults(){return Object.assign(v_.getDefaults(),{baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:.2})}get octaves(){return this._octaves}set octaves(t){this._octaves=t,this._setSweepRange()}get follower(){return this._follower.smoothing}set follower(t){this._follower.smoothing=t}get baseFrequency(){return this._baseFrequency}set baseFrequency(t){this._baseFrequency=this.toFrequency(t),this._setSweepRange()}get sensitivity(){return ed(1/this._inputBoost.gain.value)}set sensitivity(t){this._inputBoost.gain.value=1/td(t)}_setSweepRange(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)}dispose(){return super.dispose(),this._follower.dispose(),this._sweepRange.dispose(),this._bandpass.dispose(),this._peaking.dispose(),this._inputBoost.dispose(),this}}const k_="bit-crusher";Xf(k_,"\n\tclass BitCrusherWorklet extends SingleIOProcessor {\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: \"bits\",\n\t\t\t\tdefaultValue: 12,\n\t\t\t\tminValue: 1,\n\t\t\t\tmaxValue: 16,\n\t\t\t\tautomationRate: 'k-rate'\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, _channel, parameters) {\n\t\t\tconst step = Math.pow(0.5, parameters.bits - 1);\n\t\t\tconst val = step * Math.floor(input / step + 0.5);\n\t\t\treturn val;\n\t\t}\n\t}\n");class A_ extends v_{constructor(){super(Cp(A_.getDefaults(),arguments,["bits"])),this.name="BitCrusher";var t=Cp(A_.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new C_({context:this.context,bits:t.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(v_.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class C_ extends Yf{constructor(){super(Cp(C_.getDefaults(),arguments)),this.name="BitCrusherWorklet";var t=Cp(C_.getDefaults(),arguments);this.input=new xd({context:this.context}),this.output=new xd({context:this.context}),this.bits=new _d({context:this.context,value:t.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(Yf.getDefaults(),{bits:12})}_audioWorkletName(){return k_}onReady(t){gd(this.input,t,this.output);t=t.parameters.get("bits");this.bits.setParam(t)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class D_ extends v_{constructor(){super(Cp(D_.getDefaults(),arguments,["order"])),this.name="Chebyshev";var t=Cp(D_.getDefaults(),arguments,["order"]);this._shaper=new Kd({context:this.context,length:4096}),this._order=t.order,this.connectEffect(this._shaper),this.order=t.order,this.oversample=t.oversample}static getDefaults(){return Object.assign(v_.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(t,e,s){return s.has(e)||(0===e?s.set(e,0):1===e?s.set(e,t):s.set(e,2*t*this._getCoefficient(t,e-1,s)-this._getCoefficient(t,e-2,s))),s.get(e)}get order(){return this._order}set order(e){op(Number.isInteger(e),"'order' must be an integer"),this._order=e,this._shaper.setMap(t=>this._getCoefficient(t,e,new Map))}get oversample(){return this._shaper.oversample}set oversample(t){this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.dispose(),this}}class O_ extends md{constructor(){super(Cp(O_.getDefaults(),arguments,["channels"])),this.name="Split";var t=Cp(O_.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(t.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(md.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class M_ extends md{constructor(){super(Cp(M_.getDefaults(),arguments,["channels"])),this.name="Merge";var t=Cp(M_.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(t.channels)}static getDefaults(){return Object.assign(md.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class E_ extends md{constructor(t){super(t),this.name="StereoEffect",this.input=new xd({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new g_({context:this.context,fade:t.wet}),this.wet=this._dryWet.fade,this._split=new O_({context:this.context,channels:2}),this._merge=new M_({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),Gp(this,["wet"])}connectEffectLeft(...t){this._split.connect(t[0],0,0),gd(...t),vd(t[t.length-1],this._merge,0,0)}connectEffectRight(...t){this._split.connect(t[0],1,0),gd(...t),vd(t[t.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(md.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class R_ extends E_{constructor(t){super(t),this.feedback=new Td({context:this.context,value:t.feedback,units:"normalRange"}),this._feedbackL=new xd({context:this.context}),this._feedbackR=new xd({context:this.context}),this._feedbackSplit=new O_({context:this.context,channels:2}),this._feedbackMerge=new M_({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),Gp(this,["feedback"])}static getDefaults(){return Object.assign(E_.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class q_ extends R_{constructor(){super(Cp(q_.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";var t=Cp(q_.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=t.depth,this._delayTime=t.delayTime/1e3,this._lfoL=new df({context:this.context,frequency:t.frequency,min:0,max:1}),this._lfoR=new df({context:this.context,frequency:t.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Od({context:this.context}),this._delayNodeR=new Od({context:this.context}),this.frequency=this._lfoL.frequency,Gp(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=t.type,this.spread=t.spread}static getDefaults(){return Object.assign(R_.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(t){this._depth=t;t=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-t,0),this._lfoL.max=this._delayTime+t,this._lfoR.min=Math.max(this._delayTime-t,0),this._lfoR.max=this._delayTime+t}get delayTime(){return 1e3*this._delayTime}set delayTime(t){this._delayTime=t/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(t){this._lfoL.type=t,this._lfoR.type=t}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}start(t){return this._lfoL.start(t),this._lfoR.start(t),this}stop(t){return this._lfoL.stop(t),this._lfoR.stop(t),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class F_ extends v_{constructor(){super(Cp(F_.getDefaults(),arguments,["distortion"])),this.name="Distortion";var t=Cp(F_.getDefaults(),arguments,["distortion"]);this._shaper=new Kd({context:this.context,length:4096}),this._distortion=t.distortion,this.connectEffect(this._shaper),this.distortion=t.distortion,this.oversample=t.oversample}static getDefaults(){return Object.assign(v_.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(t){const e=100*(this._distortion=t),s=Math.PI/180;this._shaper.setMap(t=>Math.abs(t)<.001?0:(3+e)*t*20*s/(Math.PI+e*Math.abs(t)))}get oversample(){return this._shaper.oversample}set oversample(t){this._shaper.oversample=t}dispose(){return super.dispose(),this._shaper.dispose(),this}}class I_ extends v_{constructor(t){super(t),this.name="FeedbackEffect",this._feedbackGain=new xd({context:this.context,gain:t.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,Gp(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(v_.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class V_ extends I_{constructor(){super(Cp(V_.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";var t=Cp(V_.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Od({context:this.context,delayTime:t.delayTime,maxDelay:t.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),Gp(this,"delayTime")}static getDefaults(){return Object.assign(I_.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class N_ extends md{constructor(t){super(t),this.name="PhaseShiftAllpass",this.input=new xd({context:this.context}),this.output=new xd({context:this.context}),this.offset90=new xd({context:this.context}),this._bank0=this._createAllPassFilterBank([.6923878,.9360654322959,.988229522686,.9987488452737]),this._bank1=this._createAllPassFilterBank([.4021921162426,.856171088242,.9722909545651,.9952884791278]),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),gd(this.input,...this._bank0,this._oneSampleDelay,this.output),gd(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(t){return t.map(t=>{t=[[t*t,0,-1],[1,0,-t*t]];return this.context.createIIRFilter(t[0],t[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(t=>t.disconnect()),this._bank1.forEach(t=>t.disconnect()),this._oneSampleDelay.disconnect(),this}}class P_ extends v_{constructor(){super(Cp(P_.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";var t=Cp(P_.getDefaults(),arguments,["frequency"]);this.frequency=new Td({context:this.context,units:"frequency",value:t.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new $d({context:this.context,type:"sine"}),this._cosine=new Hd({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new ef({context:this.context}),this._cosineMultiply=new ef({context:this.context}),this._negate=new wf({context:this.context}),this._add=new lf({context:this.context}),this._phaseShifter=new N_({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);t=this.immediate();this._sine.start(t),this._cosine.start(t)}static getDefaults(){return Object.assign(v_.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const j_=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],L_=[225,556,441,341];class z_ extends E_{constructor(){super(Cp(z_.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const s=Cp(z_.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Td({context:this.context,value:s.roomSize,units:"normalRange"}),this._allpassFiltersL=L_.map(t=>{const e=this.context.createBiquadFilter();return e.type="allpass",e.frequency.value=t,e}),this._allpassFiltersR=L_.map(t=>{const e=this.context.createBiquadFilter();return e.type="allpass",e.frequency.value=t,e}),this._combFilters=j_.map((t,e)=>{t=new Kf({context:this.context,dampening:s.dampening,delayTime:t});return et.dampening=e)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(t=>t.disconnect()),this._allpassFiltersR.forEach(t=>t.disconnect()),this._combFilters.forEach(t=>t.dispose()),this.roomSize.dispose(),this}}const W_=[.06748,.06404,.08212,.09004],B_=[.773,.802,.753,.733],U_=[347,113,37];class G_ extends E_{constructor(){super(Cp(G_.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];var t=Cp(G_.getDefaults(),arguments,["roomSize"]);this.roomSize=new Td({context:this.context,value:t.roomSize,units:"normalRange"}),this._scaleRoomSize=new uf({context:this.context,min:-.733,max:.197}),this._allpassFilters=U_.map(t=>{const e=this.context.createBiquadFilter();return e.type="allpass",e.frequency.value=t,e}),this._feedbackCombFilters=W_.map((t,e)=>{const s=new Hf({context:this.context,delayTime:t});return this._scaleRoomSize.connect(s.resonance),s.resonance.value=B_[e],et.disconnect()),this._feedbackCombFilters.forEach(t=>t.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class Q_ extends R_{constructor(t){super(t),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),Gp(this,["feedback"])}}class Z_ extends Q_{constructor(){super(Cp(Z_.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";var t=Cp(Z_.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Od({context:this.context,maxDelay:t.maxDelay}),this._rightDelay=new Od({context:this.context,maxDelay:t.maxDelay}),this._rightPreDelay=new Od({context:this.context,maxDelay:t.maxDelay}),this.delayTime=new Td({context:this.context,units:"time",value:t.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),Gp(this,["delayTime"])}static getDefaults(){return Object.assign(Q_.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class X_ extends I_{constructor(){super(Cp(X_.getDefaults(),arguments,["pitch"])),this.name="PitchShift";var t=Cp(X_.getDefaults(),arguments,["pitch"]);this._frequency=new Td({context:this.context}),this._delayA=new Od({maxDelay:1,context:this.context}),this._lfoA=new df({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Od({maxDelay:1,context:this.context}),this._lfoB=new df({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new g_({context:this.context}),this._crossFadeLFO=new df({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Od({delayTime:t.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,Gp(this,"delayTime"),this._pitch=t.pitch,this._windowSize=t.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);t=this.now();this._lfoA.start(t),this._lfoB.start(t),this._crossFadeLFO.start(t),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(I_.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(t){this._pitch=t;let e=0;e=t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,sd(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,sd(t)-1),this._frequency.value=e*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Y_ extends E_{constructor(){super(Cp(Y_.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";var t=Cp(Y_.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new df({context:this.context,frequency:t.frequency,min:0,max:1}),this._lfoR=new df({context:this.context,frequency:t.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(t.baseFrequency),this._octaves=t.octaves,this.Q=new Td({context:this.context,value:t.Q,units:"positive"}),this._filtersL=this._makeFilters(t.stages,this._lfoL),this._filtersR=this._makeFilters(t.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=t.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=t.baseFrequency,this.octaves=t.octaves,this._lfoL.start(),this._lfoR.start(),Gp(this,["frequency","Q"])}static getDefaults(){return Object.assign(E_.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,s){const n=[];for(let t=0;tt.disconnect()),this._filtersR.forEach(t=>t.disconnect()),this.frequency.dispose(),this}}class $_ extends v_{constructor(){super(Cp($_.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();var t=Cp($_.getDefaults(),arguments,["decay"]);this._decay=t.decay,this._preDelay=t.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(v_.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){ap(t=this.toSeconds(t),.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){ap(t=this.toSeconds(t),0),this._preDelay=t,this.generate()}generate(){return yp(this,void 0,void 0,function*(){const t=this.ready,e=new Yp(2,this._decay+this._preDelay,this.context.sampleRate),s=new Ud({context:e}),n=new Ud({context:e}),i=new M_({context:e});s.connect(i,0,0),n.connect(i,0,1);const r=new xd({context:e}).toDestination();i.connect(r),s.start(0),n.start(0),r.gain.setValueAtTime(0,0),r.gain.setValueAtTime(1,this._preDelay),r.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const o=e.render();return this.ready=o.then(Zp),yield t,this._convolver.buffer=(yield o).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class H_ extends md{constructor(){super(Cp(H_.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new O_({channels:2,context:this.context}),this._midAdd=new lf({context:this.context}),this.mid=new ef({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new bf({context:this.context}),this.side=new ef({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class J_ extends md{constructor(){super(Cp(J_.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new xd({context:this.context}),this.side=new xd({context:this.context}),this._left=new lf({context:this.context}),this._leftMult=new ef({context:this.context,value:Math.SQRT1_2}),this._right=new bf({context:this.context}),this._rightMult=new ef({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new M_({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class K_ extends v_{constructor(t){super(t),this.name="MidSideEffect",this._midSideMerge=new J_({context:this.context}),this._midSideSplit=new H_({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...t){this._midSend.chain(...t,this._midReturn)}connectEffectSide(...t){this._sideSend.chain(...t,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class tm extends K_{constructor(){super(Cp(tm.getDefaults(),arguments,["width"])),this.name="StereoWidener";var t=Cp(tm.getDefaults(),arguments,["width"]);this.width=new Td({context:this.context,value:t.width,units:"normalRange"}),Gp(this,["width"]),this._twoTimesWidthMid=new ef({context:this.context,value:2}),this._twoTimesWidthSide=new ef({context:this.context,value:2}),this._midMult=new ef({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new bf({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),vd(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new ef({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(K_.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class em extends E_{constructor(){super(Cp(em.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";var t=Cp(em.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new df({context:this.context,type:t.type,min:1,max:0}),this._lfoR=new df({context:this.context,type:t.type,min:1,max:0}),this._amplitudeL=new xd({context:this.context}),this._amplitudeR=new xd({context:this.context}),this.frequency=new Td({context:this.context,value:t.frequency,units:"frequency"}),this.depth=new Td({context:this.context,value:t.depth,units:"normalRange"}),Gp(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=t.spread}static getDefaults(){return Object.assign(E_.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(t){return this._lfoL.start(t),this._lfoR.start(t),this}stop(t){return this._lfoL.stop(t),this._lfoR.stop(t),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(t){this._lfoL.type=t,this._lfoR.type=t}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class sm extends v_{constructor(){super(Cp(sm.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";var t=Cp(sm.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Od({context:this.context,delayTime:0,maxDelay:t.maxDelay}),this._lfo=new df({context:this.context,type:t.type,min:0,max:t.maxDelay,frequency:t.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=t.depth,Gp(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(v_.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(t){this._lfo.type=t}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class nm extends md{constructor(){super(Cp(nm.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];var e=Cp(nm.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new xd({context:this.context}),this._split=new O_({context:this.context,channels:e.channels}),this.input.connect(this._split),ap(e.channels,1);for(let t=0;t{e=this._buffers[e];"fft"===this._type?t.getFloatFrequencyData(e):"waveform"===this._type&&t.getFloatTimeDomainData(e)}),1===this.channels?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(s){this._analysers.forEach((t,e)=>{t.fftSize=2*s,this._buffers[e]=new Float32Array(s)})}get channels(){return this._analysers.length}get type(){return this._type}set type(t){op("waveform"===t||"fft"===t,`Analyser: invalid type: ${t}`),this._type=t}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach(t=>t.smoothingTimeConstant=e)}dispose(){return super.dispose(),this._analysers.forEach(t=>t.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class im extends md{constructor(){super(Cp(im.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new nm({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class rm extends im{constructor(){super(Cp(rm.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;var t=Cp(rm.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new nm({context:this.context,size:256,type:"waveform",channels:t.channelCount}),this.smoothing=t.smoothing,this.normalRange=t.normalRange}static getDefaults(){return Object.assign(im.getDefaults(),{smoothing:.8,normalRange:!1,channelCount:1})}getLevel(){return _p("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const t=this._analyser.getValue(),e=(1===this.channels?[t]:t).map(t=>{var e=t.reduce((t,e)=>t+e*e,0),t=Math.sqrt(e/t.length);return this._rms=Math.max(t,this._rms*this.smoothing),this.normalRange?this._rms:ed(this._rms)});return 1===this.channels?e[0]:e}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class om extends im{constructor(){super(Cp(om.getDefaults(),arguments,["size"])),this.name="FFT";var t=Cp(om.getDefaults(),arguments,["size"]);this.normalRange=t.normalRange,this._analyser.type="fft",this.size=t.size}static getDefaults(){return Object.assign(md.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(t=>this.normalRange?td(t):t)}get size(){return this._analyser.size}set size(t){this._analyser.size=t}get smoothing(){return this._analyser.smoothing}set smoothing(t){this._analyser.smoothing=t}getFrequencyOfIndex(t){return op(0<=t&&tt._updateSolo())}get muted(){return 0===this.input.gain.value}_addSolo(){cm._soloed.has(this.context)||cm._soloed.set(this.context,new Set),cm._soloed.get(this.context).add(this)}_removeSolo(){cm._soloed.has(this.context)&&cm._soloed.get(this.context).delete(this)}_isSoloed(){return cm._soloed.has(this.context)&&cm._soloed.get(this.context).has(this)}_noSolos(){return!cm._soloed.has(this.context)||cm._soloed.has(this.context)&&0===cm._soloed.get(this.context).size}_updateSolo(){this._isSoloed()||this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),cm._allSolos.get(this.context).delete(this),this._removeSolo(),this}}cm._allSolos=new Map,cm._soloed=new Map;class lm extends md{constructor(){super(Cp(lm.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";var t=Cp(lm.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new w_({context:this.context,pan:t.pan,channelCount:t.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Vd({context:this.context,volume:t.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,Gp(this,["pan","volume"])}static getDefaults(){return Object.assign(md.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(t){this._volume.mute=t}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class um extends md{constructor(){super(Cp(um.getDefaults(),arguments,["volume","pan"])),this.name="Channel";var t=Cp(um.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new cm({solo:t.solo,context:this.context}),this._panVol=this.output=new lm({context:this.context,pan:t.pan,volume:t.volume,mute:t.mute,channelCount:t.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),Gp(this,["pan","volume"])}static getDefaults(){return Object.assign(md.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(t){this._solo.solo=t}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(t){this._panVol.mute=t}_getBus(t){return um.buses.has(t)||um.buses.set(t,new xd({context:this.context})),um.buses.get(t)}send(t,e=0){const s=this._getBus(t),n=new xd({context:this.context,units:"decibels",gain:e});return this.connect(n),n.connect(s),n}receive(t){return this._getBus(t).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}um.buses=new Map;class pm extends md{constructor(){super(Cp(pm.getDefaults(),arguments)),this.name="Mono",this.input=new xd({context:this.context}),this._merge=this.output=new M_({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class dm extends md{constructor(){super(Cp(dm.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new xd({context:this.context}),this.output=void 0,this.low=new Nf({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Nf({context:this.context,frequency:0,type:"highpass"}),this.mid=new Nf({context:this.context,frequency:0,type:"lowpass"}),this.high=new Nf({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];var t=Cp(dm.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Td({context:this.context,units:"frequency",value:t.lowFrequency}),this.highFrequency=new Td({context:this.context,units:"frequency",value:t.highFrequency}),this.Q=new Td({context:this.context,units:"positive",value:t.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),Gp(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(md.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),Qp(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class fm extends md{constructor(){super(...arguments),this.name="Listener",this.positionX=new _d({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new _d({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new _d({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new _d({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new _d({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new _d({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new _d({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new _d({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new _d({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(md.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}jp(t=>{t.listener=new fm({context:t})}),zp(t=>{t.listener.dispose()});class _m extends md{constructor(){super(Cp(_m.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";var t=Cp(_m.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=t.panningModel,this.maxDistance=t.maxDistance,this.distanceModel=t.distanceModel,this.coneOuterGain=t.coneOuterGain,this.coneOuterAngle=t.coneOuterAngle,this.coneInnerAngle=t.coneInnerAngle,this.refDistance=t.refDistance,this.rolloffFactor=t.rolloffFactor,this.positionX=new _d({context:this.context,param:this._panner.positionX,value:t.positionX}),this.positionY=new _d({context:this.context,param:this._panner.positionY,value:t.positionY}),this.positionZ=new _d({context:this.context,param:this._panner.positionZ,value:t.positionZ}),this.orientationX=new _d({context:this.context,param:this._panner.orientationX,value:t.orientationX}),this.orientationY=new _d({context:this.context,param:this._panner.orientationY,value:t.orientationY}),this.orientationZ=new _d({context:this.context,param:this._panner.orientationZ,value:t.orientationZ})}static getDefaults(){return Object.assign(md.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(t,e,s){return this.positionX.value=t,this.positionY.value=e,this.positionZ.value=s,this}setOrientation(t,e,s){return this.orientationX.value=t,this.orientationY.value=e,this.orientationZ.value=s,this}get panningModel(){return this._panner.panningModel}set panningModel(t){this._panner.panningModel=t}get refDistance(){return this._panner.refDistance}set refDistance(t){this._panner.refDistance=t}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(t){this._panner.rolloffFactor=t}get distanceModel(){return this._panner.distanceModel}set distanceModel(t){this._panner.distanceModel=t}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(t){this._panner.coneInnerAngle=t}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(t){this._panner.coneOuterAngle=t}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(t){this._panner.coneOuterGain=t}get maxDistance(){return this._panner.maxDistance}set maxDistance(t){this._panner.maxDistance=t}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class mm extends md{constructor(){super(Cp(mm.getDefaults(),arguments)),this.name="Recorder";var t=Cp(mm.getDefaults(),arguments);this.input=new xd({context:this.context}),op(mm.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:t.mimeType})}static getDefaults(){return md.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return null!==mp&&Reflect.has(mp,"MediaRecorder")}get state(){return"inactive"===this._recorder.state?"stopped":"paused"===this._recorder.state?"paused":"started"}start(){return yp(this,void 0,void 0,function*(){op("started"!==this.state,"Recorder is already started");var t=new Promise(t=>{const e=()=>{this._recorder.removeEventListener("start",e,!1),t()};this._recorder.addEventListener("start",e,!1)});return this._recorder.start(),yield t})}stop(){return yp(this,void 0,void 0,function*(){op("stopped"!==this.state,"Recorder is not started");var t=new Promise(e=>{const s=t=>{this._recorder.removeEventListener("dataavailable",s,!1),e(t.data)};this._recorder.addEventListener("dataavailable",s,!1)});return this._recorder.stop(),yield t})}pause(){return op("started"===this.state,"Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class gm extends md{constructor(){super(Cp(gm.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;var t=Cp(gm.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new _d({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:t.threshold}),this.attack=new _d({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:t.attack}),this.release=new _d({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:t.release}),this.knee=new _d({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:t.knee}),this.ratio=new _d({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:t.ratio}),Gp(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(md.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class vm extends md{constructor(){super(Object.assign(Cp(vm.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";var t=Cp(vm.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new T_({context:this.context,smoothing:t.smoothing}),this._gt=new Sf({context:this.context,value:td(t.threshold)}),this.input=new xd({context:this.context}),this._gate=this.output=new xd({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(md.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return ed(this._gt.value)}set threshold(t){this._gt.value=td(t)}get smoothing(){return this._follower.smoothing}set smoothing(t){this._follower.smoothing=t}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class ym extends md{constructor(){super(Object.assign(Cp(ym.getDefaults(),arguments,["threshold"]))),this.name="Limiter";var t=Cp(ym.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new gm({context:this.context,ratio:20,attack:.003,release:.01,threshold:t.threshold}),this.threshold=this._compressor.threshold,Gp(this,"threshold")}static getDefaults(){return Object.assign(md.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class xm extends md{constructor(){super(Object.assign(Cp(xm.getDefaults(),arguments))),this.name="MidSideCompressor";var t=Cp(xm.getDefaults(),arguments);this._midSideSplit=this.input=new H_({context:this.context}),this._midSideMerge=this.output=new J_({context:this.context}),this.mid=new gm(Object.assign(t.mid,{context:this.context})),this.side=new gm(Object.assign(t.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),Gp(this,["mid","side"])}static getDefaults(){return Object.assign(md.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class wm extends md{constructor(){super(Object.assign(Cp(wm.getDefaults(),arguments))),this.name="MultibandCompressor";var t=Cp(wm.getDefaults(),arguments);this._splitter=this.input=new dm({context:this.context,lowFrequency:t.lowFrequency,highFrequency:t.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new xd({context:this.context}),this.low=new gm(Object.assign(t.low,{context:this.context})),this.mid=new gm(Object.assign(t.mid,{context:this.context})),this.high=new gm(Object.assign(t.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),Gp(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(md.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class bm extends md{constructor(){super(Cp(bm.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new xd({context:this.context}),this._internalChannels=[];var t=Cp(bm.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new dm({context:this.context,highFrequency:t.highFrequency,lowFrequency:t.lowFrequency}),this._lowGain=new xd({context:this.context,gain:t.low,units:"decibels"}),this._midGain=new xd({context:this.context,gain:t.mid,units:"decibels"}),this._highGain=new xd({context:this.context,gain:t.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),Gp(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(md.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),Qp(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class Tm extends md{constructor(){super(Cp(Tm.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=Cp(Tm.getDefaults(),arguments,["url","onload"]);this._buffer=new Xp(e.url,t=>{this.buffer=t,e.onload()}),this.input=new xd({context:this.context}),this.output=new xd({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(md.getDefaults(),{normalize:!0,onload:Zp})}load(t){return yp(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(t)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(t){t&&this._buffer.set(t),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));t=this._buffer.get();this._convolver.buffer=t||null}get normalize(){return this._convolver.normalize}set normalize(t){this._convolver.normalize=t}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}const Sm=Jp().transport;const km=Jp().destination,Am=Jp().destination;const Cm=Jp().listener;const Dm=Jp().draw;const Om=Jp();const Mm=Xp,Em=Md,Rm=Bd})(),Fm})()}); \ No newline at end of file diff --git a/src/pages/entry.en.html b/src/pages/entry.en.html index 8377da4..4f7198d 100644 --- a/src/pages/entry.en.html +++ b/src/pages/entry.en.html @@ -70,7 +70,7 @@
-

How to participate

+

How to participate

  1. 1. Record the sound for about 30 seconds with a recording device or phone according to the characteristics of the flock.
      @@ -85,7 +85,7 @@
-

Sound Submission

+

Sound Submission

  • @@ -134,7 +134,8 @@
-

Sound  List

+

Sound  List

+

The sounds you submitted will be stacked in chronological order in the list below. By clicking on each shape, you can hear the sound corresponding to the shape and check the information about the sound.

{{#each list}}
diff --git a/src/pages/entry.html b/src/pages/entry.html index 766663c..b8cc172 100644 --- a/src/pages/entry.html +++ b/src/pages/entry.html @@ -71,7 +71,7 @@
-

참여 방법

+

참여 방법

  1. 1. 무리의 특성에 따라 녹음기기나 핸드폰으로 30초 가량의 소리를 녹음해주세요.
      @@ -86,7 +86,7 @@
-

소리 제출

+

소리 제출

  • @@ -136,7 +136,8 @@
-

소리 목록

+

소리 목록

+

제출해주신 소리는 아래 목록에 시간순으로 쌓입니다. 각각의 모양을 클릭하면, 모양에 해당하는 소리를 듣고 소리에 대한 정보를 확인할 수 있습니다.

{{#each list}}
diff --git a/src/pages/parade.html b/src/pages/parade.html index 469c4bd..be34bad 100644 --- a/src/pages/parade.html +++ b/src/pages/parade.html @@ -71,7 +71,9 @@ var roomsel = createDiv(); roomsel.class("roomsel"); - var b = createButton("시작하기!", 1); + var b = createButton("시작하기 Start!", 1); + var d = createDiv("흐름을  향하여  걷는   Walking towards the Flow"); + d.class("title"); b.mouseClicked(function() { silence.play(); clap.play(); @@ -102,6 +104,7 @@ }); }, 1000); }); + roomsel.child(d); roomsel.child(b); } else { //re-connection -> just connect to remembered room!