<effect>
  <name>ladspa TAPreflector</name>
  <enabled>true</enabled>
  <numIns>2</numIns>
  <numOuts>2</numOuts>
  <code>if (&lt;ladspa_TAPreflectorON&gt; == 1) then
    ain =   (ain1 + ain2) * .5                                                  ; mix inputs to mono
    ihandle dssiinit &quot;&lt;ladspa_TAPreflector_ladspa&gt;&quot;, 0, 0

    dssiactivate ihandle, 1
	
    dssictls ihandle, 0, &lt;ladspa_TAPreflector_Fragment Length&gt;, 1                                   ; 20 - 1600
    dssictls ihandle, 1, &lt;ladspa_TAPreflector_Dry Level&gt;, 1                                         ; -90 - 20
    dssictls ihandle, 2, &lt;ladspa_TAPreflector_Wet Level&gt;, 1                                         ; -90 - 20

    aout1   dssiaudio ihandle, ain                                              ; mono in, mono out
    aout2   =   aout1
else
    aout1   =   ain1
    aout2   =   ain2
endif

</code>
  <comments>a wrapper of ladspa plugin 2154 called Tap Reflector, created by Tom Szilagyi. Licensed under GNU General Public License, version 2.
plugin has mono input, mono output.

The dssi opcodes are wrapping the ladspa plugin so it can be used as an effect in Blue.
The PATH for the ladspa plugins on my Linux systemm is /usr/lib/ladspa. Be sure to set the right PATH if you run OSX or Windows.


DESCRIPTION:

This plugin creates a psychedelic reverse audio effect. Overlapping time intervals of incoming samples are treated as blocks called &apos;fragments&apos;. 
Each fragment is reversed in time, and faded in and out while played back to the output, 
hence creating a nearly constant signal level with the mixture resembling a normal reverse-played track -- 
with the difference that the audio actually progresses forward, only pieces of it are reversed.


CONTROLLERS:

ON/OFF                  -       bypass
File Selector           -       set path for tap_reflector.so
Fragment Length         -       length in ms
Dry Level               -       amount of direct signal in dB
RT-low                  -       level of effect in dB

---
version 1.02, July 2020
- added BSB information comments

version 1.01, May 2020
- added comments on controllers

version 1.0, June 2019
- initial version by Menno Knevel</comments>
  <opcodeList/>
  <graphicInterface editEnabled='false'>
    <gridSettings>
      <width>5</width>
      <height>10</height>
      <gridStyle>DOT</gridStyle>
      <snapGridEnabled>true</snapGridEnabled>
    </gridSettings>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
      <objectName></objectName>
      <x>0</x>
      <y>0</y>
      <groupName>Group</groupName>
      <backgroundColor>0x00000033</backgroundColor>
      <borderColor>0x000000ff</borderColor>
      <labelTextColor>0xffffffff</labelTextColor>
      <titleEnabled>true</titleEnabled>
      <width>20</width>
      <height>20</height>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>10</x>
        <y>10</y>
        <groupName>Group</groupName>
        <backgroundColor>0x666666ff</backgroundColor>
        <borderColor>0x000000ff</borderColor>
        <labelTextColor>0xffffffff</labelTextColor>
        <titleEnabled>false</titleEnabled>
        <width>20</width>
        <height>20</height>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>ladspa_TAPreflector_Wet Level</objectName>
          <x>10</x>
          <y>120</y>
          <comment>level of effect in dB</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>-90.0</minimum>
          <maximum>20.0</maximum>
          <bdresolution>0.1</bdresolution>
          <value>-15.299999999999997</value>
          <sliderWidth>150</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>215</x>
          <y>70</y>
          <label>Fragment Length</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>215</x>
          <y>130</y>
          <label>Wet Level</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>ladspa_TAPreflector_Dry Level</objectName>
          <x>10</x>
          <y>90</y>
          <comment>amount of direct signal in dB</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>-90.0</minimum>
          <maximum>20.0</maximum>
          <bdresolution>0.1</bdresolution>
          <value>0.20000000000000284</value>
          <sliderWidth>150</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>ladspa_TAPreflector_Fragment Length</objectName>
          <x>10</x>
          <y>60</y>
          <comment>length in ms</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>20.0</minimum>
          <maximum>1600.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>612.5</value>
          <sliderWidth>150</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>215</x>
          <y>100</y>
          <label>Dry Level</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
          <objectName>ladspa_TAPreflector_ladspa</objectName>
          <x>5</x>
          <y>10</y>
          <comment>set path for tap_reflector.so</comment>
          <fileName>/usr/lib/ladspa/tap_reflector.so</fileName>
          <textFieldWidth>280</textFieldWidth>
          <stringChannelEnabled>false</stringChannelEnabled>
        </bsbObject>
      </bsbObject>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
        <objectName>ladspa_TAPreflectorON</objectName>
        <x>0</x>
        <y>0</y>
        <comment>bypass</comment>
        <automationAllowed>true</automationAllowed>
        <label/>
        <selected>true</selected>
        <randomizable>true</randomizable>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='-1970860169' name='ladspa_TAPreflector_Dry Level' label='' min='-90.0' max='20.0' bdresolution='0.1' automationEnabled='false' value='0.20000000000000284'>
      <line name='' version='2' max='20.0' min='-90.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.20000000000000284'/>
      </line>
    </parameter>
    <parameter uniqueId='-1970860167' name='ladspa_TAPreflector_Fragment Length' label='' min='20.0' max='1600.0' bdresolution='0.01' automationEnabled='false' value='612.5'>
      <line name='' version='2' max='1600.0' min='20.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='612.5'/>
      </line>
    </parameter>
    <parameter uniqueId='-1970860165' name='ladspa_TAPreflector_Wet Level' label='' min='-90.0' max='20.0' bdresolution='0.1' automationEnabled='false' value='-15.299999999999997'>
      <line name='' version='2' max='20.0' min='-90.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='-15.299999999999997'/>
      </line>
    </parameter>
    <parameter uniqueId='-1970860163' name='ladspa_TAPreflectorON' label='' min='0.0' max='1.0' bdresolution='1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
  </parameterList>
</effect>