<effect>
  <name>Tremors</name>
  <enabled>true</enabled>
  <numIns>2</numIns>
  <numOuts>2</numOuts>
  <code>if (&lt;TremorsON&gt; == 1) then
;[once]{ 
        isine	ftgentmp 0, 0, 2048, 10, 1                                      ; sine
        isquare	ftgentmp 0, 0, 2048, 10, 1, 0, 0.3, 0, 0.2, 0, 0.14, 0, .111	; Square
        isaw	ftgentmp 0, 0, 2048, 10, 1, 0.5, 0.3, 0.25, 0.2, 0.167, 0.14, 0.125, .111	; Sawtooth
        ipulse	ftgentmp 0, 0, 2048, 10, 1, 1, 1, 1, 0.7, 0.5, 0.3, 0.1         ; Pulse
        iflat	ftgentmp 0, 0, 2048, 7, 1, 2048, 1                              ; flat
;}
    klfof1	= &lt;Tremors_LFOfrequency 1&gt;
    klfoa1	= &lt;Tremors_LFOamplitude 1&gt;
    klfof2	= &lt;Tremors_LFOfrequency 2&gt;
    klfoa2	= &lt;Tremors_LFOamplitude 2&gt;
    kfreq	= &lt;Tremors_frequency&gt;
    afreq       interp kfreq

    kSwitch	changed2  &lt;Tremors_shape&gt;, &lt;Tremors_wave&gt;  	
        if	kSwitch = 1	then		
		reinit	STARTTREMORS		
	endif

STARTTREMORS:
    if i(&lt;Tremors_wave&gt;) ==  0 then
    iwave   =   isine
    elseif i(&lt;Tremors_wave&gt;) ==  1 then
    iwave   =   isquare
    elseif i(&lt;Tremors_wave&gt;) ==  2 then
    iwave   =   isaw
    elseif i(&lt;Tremors_wave&gt;) ==  3 then
    iwave   =   ipulse
    else
    iwave   =   iflat
    endif

    alfo	lfo klfoa1, klfof1, i(&lt;Tremors_shape&gt;)
    alfo2	lfo klfoa2, klfof2, i(&lt;Tremors_shape&gt;)
    amod	poscil3 1, afreq+alfo+alfo2, iwave

    aouts1	= ain1 * amod
    aouts2	= ain2 * amod
    aout1       = (ain1 * &lt;Tremors_wetdry&gt;) + ((aouts1*1.3) * (1 - &lt;Tremors_wetdry&gt;))
    aout2       = (ain2 * &lt;Tremors_wetdry&gt;) + ((aouts2*1.3) * (1 - &lt;Tremors_wetdry&gt;))
else
    aout1   =   ain1
    aout2   =   ain2
endif</code>
  <comments>
DESCRIPTION:

Tremors is inspired by the VRingMod effect from bucket_brigade. But it is more focused on forcing amplitude patterns upon the incoming signal, but not going into the ringmodulation range (&gt;20 Hz).
It combines 3 tremolo units, imposing complex rhythmic pattern on the incoming signal.


CONTROLLERS:

ON/OFF          -       bypass
frequency       -       frequency of main LFO
frequency1/2    -       frequency of the 2 LFOs that impose on the main LFO
Dropdown List   -       5 different waveforms for LFO
depth           -       mix direct signal with effect

---

version 1.11, May 2020
- added comments on controllers

version 1.1, Octobre 2019
- retriggering the waveforms was not functional. This has been corrected

version 1, July 2019
- initial version by Menno Knevel, after the VRingMod effect from bucket_brigade</comments>
  <opcodeList/>
  <graphicInterface editEnabled='true'>
    <gridSettings>
      <width>5</width>
      <height>5</height>
      <gridStyle>LINE</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.BSBKnob' version='2'>
          <objectName>Tremors_frequency</objectName>
          <x>200</x>
          <y>20</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>20.0</maximum>
          <value>6.2</value>
          <knobWidth>40</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>frequency</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>210</x>
          <y>125</y>
          <label>depth</label>
          <font>
            <name>System Regular</name>
            <size>12.0</size>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
          <objectName>Tremors_wave</objectName>
          <x>195</x>
          <y>100</y>
          <automationAllowed>true</automationAllowed>
          <selectedIndex>0</selectedIndex>
          <fontSize>12</fontSize>
          <randomizable>true</randomizable>
          <bsbDropdownItemList>
            <bsbDropdownItem uniqueId='-865526816'>
              <name>sine</name>
              <value>0</value>
            </bsbDropdownItem>
            <bsbDropdownItem uniqueId='-865526815'>
              <name>square</name>
              <value>1</value>
            </bsbDropdownItem>
            <bsbDropdownItem uniqueId='-865526814'>
              <name>saw</name>
              <value>2</value>
            </bsbDropdownItem>
            <bsbDropdownItem uniqueId='-865526813'>
              <name>pulse</name>
              <value>3</value>
            </bsbDropdownItem>
            <bsbDropdownItem uniqueId='-865526812'>
              <name>none</name>
              <value>4</value>
            </bsbDropdownItem>
          </bsbDropdownItemList>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>Tremors_wetdry</objectName>
          <x>205</x>
          <y>130</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.0</value>
          <sliderWidth>50</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>10</y>
          <groupName>Group</groupName>
          <backgroundColor>0x00000033</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>20</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>30</x>
            <y>95</y>
            <label>LFO 1</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>Tremors_shape</objectName>
            <x>25</x>
            <y>120</y>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='-865526811'>
                <name>Sine</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-865526810'>
                <name>Triangle</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-865526809'>
                <name>Square (bipolar)</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-865526808'>
                <name>Square (unipolar)</name>
                <value>3</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-865526807'>
                <name>SawTooth</name>
                <value>4</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-865526806'>
                <name>SawTooth (down)</name>
                <value>5</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>Tremors_LFOamplitude 2</objectName>
            <x>90</x>
            <y>75</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.01</minimum>
            <maximum>20.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>3.34</value>
            <sliderWidth>80</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>115</x>
            <y>95</y>
            <label>LFO 2</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>Tremors_LFOamplitude 1</objectName>
            <x>5</x>
            <y>75</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.01</minimum>
            <maximum>20.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>3.34</value>
            <sliderWidth>80</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>Tremors_LFOfrequency 1</objectName>
            <x>10</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.01</minimum>
            <maximum>5.0</maximum>
            <value>1.1078000000000001</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>frequency1</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>Tremors_LFOfrequency 2</objectName>
            <x>95</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.01</minimum>
            <maximum>5.0</maximum>
            <value>0.4092</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>frequency2</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
      </bsbObject>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
        <objectName>TremorsON</objectName>
        <x>0</x>
        <y>0</y>
        <automationAllowed>true</automationAllowed>
        <label/>
        <selected>true</selected>
        <randomizable>true</randomizable>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='-865526804' name='TremorsON' 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='-865526802' name='Tremors_frequency' label='' min='0.0' max='20.0' bdresolution='-1' automationEnabled='false' value='6.2'>
      <line name='' version='2' max='20.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='6.2'/>
      </line>
    </parameter>
    <parameter uniqueId='-865526800' name='Tremors_LFOfrequency 2' label='' min='0.01' max='5.0' bdresolution='-1' automationEnabled='false' value='0.4092'>
      <line name='' version='2' max='5.0' min='0.01' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.4092'/>
      </line>
    </parameter>
    <parameter uniqueId='-865526798' name='Tremors_LFOfrequency 1' label='' min='0.01' max='5.0' bdresolution='-1' automationEnabled='false' value='1.1078000000000001'>
      <line name='' version='2' max='5.0' min='0.01' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.1078000000000001'/>
      </line>
    </parameter>
    <parameter uniqueId='-865526796' name='Tremors_LFOamplitude 2' label='' min='0.01' max='20.0' bdresolution='0.01' automationEnabled='false' value='3.34'>
      <line name='' version='2' max='20.0' min='0.01' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.34'/>
      </line>
    </parameter>
    <parameter uniqueId='-865526792' name='Tremors_LFOamplitude 1' label='' min='0.01' max='20.0' bdresolution='0.01' automationEnabled='false' value='3.34'>
      <line name='' version='2' max='20.0' min='0.01' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.34'/>
      </line>
    </parameter>
    <parameter uniqueId='-865526788' name='Tremors_wetdry' 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='-1853545103' name='Tremors_shape' label='' min='0.0' max='5.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-1853543895' name='Tremors_wave' label='' min='0.0' max='4.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='4.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
  </parameterList>
</effect>