<effect>
  <name>PConvolve</name>
  <numIns>2</numIns>
  <numOuts>2</numOuts>
  <code>iwet = &lt;wetDry&gt;
idry = 1 - iwet

; size of each convolution partion -- for best performance, this parameter needs to be tweaked
ipartitionsize = &lt;paritionSize&gt;

; calculate latency of pconvolve opcode
idel    = (ksmps &lt; ipartitionsize ? ipartitionsize + ksmps : ipartitionsize)/sr

prints &quot;Convolving with a latency of %f seconds%n&quot;, idel

awetl, awetr pconvolve    iwet*(ain1+ain2), &quot;&lt;impulseResponse&gt;&quot;, ipartitionsize

; Delay dry signal, to align it with the convoled sig
adryl        delay  idry * ain1, idel
adryr        delay   idry * ain2, idel

aout1 = adryl+awetl
aout2 = adryr+awetr</code>
  <comments>Convolution Effect using pconvolve opcode by Matt Ingalls

The code for this effect is based on code by Matt Ingalls found in the Csound Manual; please see the manual for more information regarding pconvolve.</comments>
  <graphicInterface>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>3</x>
      <y>6</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;PConvolve&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>13</x>
      <y>43</y>
      <label>Impulse Response</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>43</x>
      <y>76</y>
      <label>Partition Size</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
      <objectName>impulseResponse</objectName>
      <x>130</x>
      <y>32</y>
      <fileName></fileName>
      <textFieldWidth>300</textFieldWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown'>
      <objectName>paritionSize</objectName>
      <x>130</x>
      <y>73</y>
      <bsbDropdownItemList>
        <bsbDropdownItem>
          <name>1</name>
          <value>1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>2</name>
          <value>2</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>4</name>
          <value>4</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>8</name>
          <value>8</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>16</name>
          <value>16</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>32</name>
          <value>32</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>64</name>
          <value>64</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>128</name>
          <value>128</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>256</name>
          <value>256</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>512</name>
          <value>512</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>1024</name>
          <value>1024</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>2048</name>
          <value>2048</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>4096</name>
          <value>4096</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>8192</name>
          <value>8192</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>16384</name>
          <value>16384</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>32768</name>
          <value>32768</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>65536</name>
          <value>65536</value>
        </bsbDropdownItem>
      </bsbDropdownItemList>
      <selectedIndex>10</selectedIndex>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>46</x>
      <y>110</y>
      <label>Wet/Dry Mix</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider'>
      <objectName>wetDry</objectName>
      <x>129</x>
      <y>105</y>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <resolution>0.01</resolution>
      <value>0.5</value>
      <sliderWidth>280</sliderWidth>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>380</x>
      <y>130</y>
      <label>Wet</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>136</x>
      <y>130</y>
      <label>Dry</label>
    </bsbObject>
  </graphicInterface>
</effect>