<effect>
  <name>Screamer</name>
  <enabled>true</enabled>
  <numIns>2</numIns>
  <numOuts>2</numOuts>
  <code>if (&lt;ScreamerON&gt; == 1) then

    alL, abL, ahL   zdf_2pole_mode   ain1,  &lt;Screamer_filter frequency&gt;, &lt;Screamer_filter resonance&gt;  
    alR, abR, ahR   zdf_2pole_mode   ain2,  &lt;Screamer_filter frequency&gt;, &lt;Screamer_filter resonance&gt; 

    alL *=  &lt;Screamer_filter lowpass&gt;  
    abL *=  &lt;Screamer_filter bandpass&gt; 
    ahL *=  &lt;Screamer_filter highpass&gt; 
    alR *=  &lt;Screamer_filter lowpass&gt;  
    abR *=  &lt;Screamer_filter bandpass&gt; 
    ahR *=  &lt;Screamer_filter highpass&gt; 
   
    asigL   sum alL, abL, ahL
    asigR   sum alR, abR, ahR 

 ;   iScale          =   (1 - (i(&lt;Screamer_DC point&gt;)))                         ; future code??
    aoutLb   powershape asigL, 1 - &lt;Screamer_power&gt;;, iScale
    aoutRb   powershape asigR, 1 - &lt;Screamer_power&gt;;, iScale
    aoutL   buthp     aoutLb, 20
    aoutR   buthp     aoutRb, 20

    kgain   =  (1 - &lt;Screamer_power&gt;)+.1                                        ; scale back

    aout1   ntrpol    ain1, aoutL * kgain, &lt;Screamer_wetdry&gt;                    ; dry/wet mix
    aout2   ntrpol    ain2, aoutR * kgain, &lt;Screamer_wetdry&gt; 
else
    aout1   =   ain1
    aout2   =   ain2
endif</code>
  <comments>DESCRIPTION:

The Screamer effect is designed to add frequency band limited distortion to the incoming signal. 
Resonance can be set to emphasize the cuttoff frequency.
Result is a &apos;screaming&apos; sound added to a quiet or dull source, to provide &apos;a body&apos;.

SIGNAL IN ---&gt; FILTER WITH Q ---&gt; DISTORTION ---&gt; SIGNAL OUT


CONTROLLERS:

ON/OFF          -       bypass
cutoff          -       filter cutoff frequency
Q               -       filter Quality value
power           -       the amount of the shaping effect applied to the input; equal to the power that the input signal is raised
low/band/hi     -       gain for lowpass, bandpass and highpass filters
mix             -       mix direct signal with effect

---

version 1.02, July 2020
- added BSB information comments

version 1.01, May 2020
- added comments on controllers

version 1.0, Octobre 2019
- initial version
</comments>
  <opcodeList/>
  <graphicInterface editEnabled='false'>
    <gridSettings>
      <width>5</width>
      <height>5</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>0x4d8080ff</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>Screamer_wetdry</objectName>
          <x>125</x>
          <y>90</y>
          <comment>mix direct signal with effect</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.43</value>
          <sliderWidth>80</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>45</x>
          <y>85</y>
          <label>power</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
          <objectName>Screamer_filter lowpass</objectName>
          <x>120</x>
          <y>25</y>
          <comment>gain for lowpass</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.0</value>
          <sliderHeight>55</sliderHeight>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>Screamer_filter frequency</objectName>
          <x>20</x>
          <y>10</y>
          <comment>filter cutoff frequency</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>100.0</minimum>
          <maximum>15000.0</maximum>
          <value>4123.0</value>
          <knobWidth>40</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>cutoff</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>190</x>
          <y>10</y>
          <label>hi</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>150</x>
          <y>85</y>
          <label>mix</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>150</x>
          <y>10</y>
          <label>band</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>Screamer_filter resonance</objectName>
          <x>70</x>
          <y>10</y>
          <comment>filter Quality value</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.5</minimum>
          <maximum>25.0</maximum>
          <value>9.565</value>
          <knobWidth>40</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>Q</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
          <objectName>Screamer_filter bandpass</objectName>
          <x>150</x>
          <y>25</y>
          <comment>gain for bandpass filters</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>1.0</value>
          <sliderHeight>55</sliderHeight>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
          <objectName>Screamer_filter highpass</objectName>
          <x>180</x>
          <y>25</y>
          <comment>gain for highpass filters</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.0</value>
          <sliderHeight>55</sliderHeight>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>120</x>
          <y>10</y>
          <label>low</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>Screamer_power</objectName>
          <x>15</x>
          <y>90</y>
          <comment>the amount of the shaping effect applied to the input; equal to the power that the input signal is raised</comment>
          <automationAllowed>true</automationAllowed>
          <minimum>0.05</minimum>
          <maximum>0.99</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.51</value>
          <sliderWidth>100</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
      </bsbObject>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
        <objectName>ScreamerON</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='1852662796' name='ScreamerON' 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>
    <parameter uniqueId='1852662798' name='Screamer_filter highpass' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662800' name='Screamer_filter bandpass' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662802' name='Screamer_wetdry' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.43'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.43'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662804' name='Screamer_filter frequency' label='' min='100.0' max='15000.0' bdresolution='-1' automationEnabled='false' value='4123.0'>
      <line name='' version='2' max='15000.0' min='100.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='4123.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662806' name='Screamer_power' label='' min='0.05' max='0.99' bdresolution='0.01' automationEnabled='false' value='0.51'>
      <line name='' version='2' max='0.99' min='0.05' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.51'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662808' name='Screamer_filter resonance' label='' min='0.5' max='25.0' bdresolution='-1' automationEnabled='false' value='9.565'>
      <line name='' version='2' max='25.0' min='0.5' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='9.565'/>
      </line>
    </parameter>
    <parameter uniqueId='1852662810' name='Screamer_filter lowpass' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
  </parameterList>
</effect>