<!-- SS · part 175 -->
{return super.dispose(),this.Q.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._filtersL.forEach((t=>t.disconnect())),this._filtersR.forEach((t=>t.disconnect())),this.frequency.dispose(),this}}class Wa extends la{constructor(){const t=ui(Wa.getDefaults(),arguments,["decay"]);super(t),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=this.toSeconds(t.decay);Un(e,.001),this._decay=e;const s=this.toSeconds(t.preDelay);Un(s,0),this._preDelay=s,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(la.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(t){Un(t=this.toSeconds(t),.001),this._decay=t,this.generate()}get preDelay(){return this._preDelay}set preDelay(t){Un(t=this.toSeconds(t),0),this._preDelay=t,this.generate()}generate(){return ni(this,void 0,void 0,(function*(){const t=this.ready,e=new qi(2,this._decay+this._preDelay,this.context.sampleRate),s=new zo({context:e}),n=new zo({context:e}),i=new ba({context:e});s.connect(i,0,0),n.connect(i,0,1);const o=new ho({context:e}).toDestination();i.connect(o),s.start(0),n.start(0),o.gain.setValueAtTime(0,0),o.gain.setValueAtTime(1,this._preDelay),o.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const r=e.render();return this.ready=r.then(Ei),yield t,this._convolver.buffer=(yield r).get(),this}))}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class Ba extends io{constructor(){super(ui(Ba.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new wa({channels:2,context:this.context}),this._midAdd=new ir({context:this.context}),this.mid=new $o({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new mr({context:this.context}),this.side=new $o({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 Ua extends io{constructor(){super(ui(Ua.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new ho({context:this.context}),this.side=new ho({context:this.context}),this._left=new ir({context:this.context}),this._leftMult=new $o({context:this.context,value:Math.SQRT1_2}),this._right=new mr({context:this.context}),this._rightMult=new $o({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new ba({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 Ga extends la{constructor(t){super(t),this.name="MidSideEffect",this._midSideMerge=new Ua({context:this.context}),this._midSideSplit=new Ba({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 Qa extends Ga{constructor(){const t=ui(Qa.getDefaults(),arguments,["width"]);super(t),this.name="StereoWidener",this.width=new po({context:this.context,value:t.width,units:"normalRange"}),Di(this,["width"]),this._twoTimesWidthMid=new $o({context:this.context,value:2}),this._twoTimesWidthSide=new $o({context:this.context,value:2}),this._midMult=new $o({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new mr({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),ro(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new $o({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(Ga.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),th