<effect>
  <name>Schroeder Reverb</name>
  <enabled>true</enabled>
  <numIns>2</numIns>
  <numOuts>2</numOuts>
  <code>irvt	=	&lt;reverbTime&gt;
ilptcmb	=	&lt;combLoop&gt;
ilptap1	=	&lt;loopDel1&gt;
ilptap2	=	&lt;loopDel2&gt;
idrymix	=	&lt;dryMix&gt;
icutoff	=	&lt;cutoff&gt;

;comb filters
adel	delayr	ilptcmb*2
acomb1	deltapi	ilptcmb
afilt1	tone	acomb1, icutoff
afilt1	balance	afilt1, acomb1
igain1	pow	.001, ilptcmb/irvt
acomb2	deltapi	ilptcmb*1.7
afilt2	tone	acomb2, icutoff
afilt2	balance	afilt2, acomb2
igain2	pow	.001, (ilptcmb*1.7)/irvt
acomb3	deltapi	ilptcmb*.333
afilt3	tone	acomb3, icutoff
afilt3	balance	afilt3, acomb3
igain3	pow	.001, (ilptcmb*.333)/irvt
acomb4	deltapi	ilptcmb*1.666
afilt4	tone	acomb4, icutoff
afilt4	balance	afilt4, acomb4
igain4	pow	.001, (ilptcmb*1.666)/irvt
delayw	(((afilt1*igain1)+(afilt2*igain2)+(afilt3*igain3)+(afilt4*igain4))/4)+ain1+ain2
acombL	=	(acomb1+acomb2)/2
acombR	=	(acomb3+acomb4)/2

;all-pass filters
aap1L	alpass	acombL, irvt, ilptap1
aap2L	alpass	aap1L, irvt, ilptap2
aap1R	alpass	acombR, irvt, ilptap1
aap2R	alpass	aap1R, irvt, ilptap2
arvbL	=	aap2L
arvbR	=	aap2R

;mix wet and dry
aout1	dcblock	(ain1*idrymix)+(arvbL*(1-idrymix))
aout2	dcblock	(ain2*idrymix)+(arvbR*(1-idrymix))
</code>
  <comments/>
  <opcodeList/>
  <graphicInterface editEnabled='false'>
    <uniqueNameManager nameIndex='-1' defaultPrefix='bsbObj'/>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>combLoop</objectName>
      <x>173</x>
      <y>27</y>
      <minimum>0.0</minimum>
      <maximum>0.2</maximum>
      <value>0.070382446</value>
      <knobWidth>60</knobWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>159</x>
      <y>107</y>
      <label>Comb Loop Time</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>reverbTime</objectName>
      <x>18</x>
      <y>11</y>
      <minimum>0.0</minimum>
      <maximum>4.0</maximum>
      <value>2.0332127</value>
      <knobWidth>120</knobWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>44</x>
      <y>150</y>
      <label>Reverb Time</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>loopDel1</objectName>
      <x>34</x>
      <y>187</y>
      <minimum>0.0</minimum>
      <maximum>0.1</maximum>
      <value>0.049102403</value>
      <knobWidth>60</knobWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>loopDel2</objectName>
      <x>125</x>
      <y>188</y>
      <minimum>0.0</minimum>
      <maximum>0.1</maximum>
      <value>0.1</value>
      <knobWidth>60</knobWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>28</x>
      <y>267</y>
      <label>Loop Delay 1</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>118</x>
      <y>269</y>
      <label>Loop Delay 2</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>dryMix</objectName>
      <x>211</x>
      <y>187</y>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.3375869</value>
      <knobWidth>60</knobWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>226</x>
      <y>267</y>
      <label>Dry Mix</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider'>
      <objectName>cutoff</objectName>
      <x>37</x>
      <y>294</y>
      <minimum>0.0</minimum>
      <maximum>10000.0</maximum>
      <resolution>1.0</resolution>
      <value>2097.0</value>
      <sliderWidth>200</sliderWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>95</x>
      <y>320</y>
      <label>LP Filter Cutoff</label>
    </bsbObject>
  </graphicInterface>
  <bsbParameterList>
    <parameter uniqueId='241011763' name='combLoop' label='' min='0.0' max='0.2' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='0.2' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.070382446'/>
      </line>
    </parameter>
    <parameter uniqueId='241011773' name='cutoff' label='' min='0.0' max='10000.0' resolution='1.0' automationEnabled='false'>
      <line name='' version='2' max='10000.0' min='0.0' resolution='1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='2097.0'/>
      </line>
    </parameter>
    <parameter uniqueId='241011771' name='dryMix' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.3375869'/>
      </line>
    </parameter>
    <parameter uniqueId='241011767' name='loopDel1' label='' min='0.0' max='0.1' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='0.1' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.049102403'/>
      </line>
    </parameter>
    <parameter uniqueId='241011769' name='loopDel2' label='' min='0.0' max='0.1' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='0.1' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.1'/>
      </line>
    </parameter>
    <parameter uniqueId='241011765' name='reverbTime' label='' min='0.0' max='4.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='4.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='2.0332127'/>
      </line>
    </parameter>
  </bsbParameterList>
</effect>