<instrument type='blue.orchestra.BlueSynthBuilder' editEnabled='true'>
  <name>TimbreModule</name>
  <comment>The TimbreModule is intended to be used as an amplitude depending timbre coloring of the incoming signal.
The louder (or softer) the amplitude of the incoming, the resonance intensity increases.

Idea is to add some viability to the Instrument.
Choices are to add some Parametric EQ and/or a Treble cutoff.

---

version 1, May 2023
- initial version</comment>
  <globalOrc></globalOrc>
  <globalSco></globalSco>
  <instrumentText>;========================TimbreModule===========================================
if (&lt;TimbreModuleON&gt; == 1) then
; psrametric EQ
    if (&lt;paraEQON&gt; == 1) then
        asigFLpar =   asigFL
        asigFRpar =   asigFR
        asigFL1  pareq    asigFLpar, &lt;pareqfreq1&gt;, &lt;pareqgain1&gt; * iamp, &lt;pareqQ1&gt; + iamp * 2 ; 1
        asigFR1  pareq    asigFRpar, &lt;pareqfreq1&gt;, &lt;pareqgain1&gt; * iamp, &lt;pareqQ1&gt; + iamp * 2
        asigFL2  pareq    asigFL1,   &lt;pareqfreq2&gt;, &lt;pareqgain2&gt; * iamp, &lt;pareqQ2&gt; + iamp * 2 ; 2
        asigFR2  pareq    asigFR1,   &lt;pareqfreq2&gt;, &lt;pareqgain2&gt; * iamp, &lt;pareqQ2&gt; + iamp * 2
        asigFL3  pareq    asigFL2,   &lt;pareqfreq3&gt;, &lt;pareqgain3&gt; * iamp, &lt;pareqQ3&gt; + iamp * 2 ; 3
        asigFR3  pareq    asigFR2,   &lt;pareqfreq3&gt;, &lt;pareqgain3&gt; * iamp, &lt;pareqQ3&gt; + iamp * 2
        asigFL   ntrpol   asigFL3, asigFL, &lt;pareqdepth&gt;
        asigFR   ntrpol   asigFR3, asigFR, &lt;pareqdepth&gt;
    endif

; timbre 
    itimbre1    ftgen 0, 0, 16, -2, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 22000
    itimbre2    ftgen 0, 0, 16, -2, 22000, 10240, 5120, 2560, 1280, 640, 320, 160, 80, 40

    if (&lt;timbre&gt; == 0) then
        kfcut	tablei	p5*10, itimbre1                                         ; LP filter cutoff frequency
    elseif (&lt;timbre&gt; == 1) then
        kfcut	tablei	p5*10, itimbre2                                         ; LP filter inverse cutoff frequency 
    else
        kfcut       =       22000
    endif
        afiltL	tone	asigFL, kfcut                                           ; LP filter...
        afiltR	tone	asigFR, kfcut	
        asigFL	balance	afiltL, asigFL                                          ; ... to control brightness
        asigFR	balance	afiltR, asigFR	
endif</instrumentText>
  <alwaysOnInstrumentText></alwaysOnInstrumentText>
  <graphicInterface editEnabled='true'>
    <gridSettings>
      <width>10</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>
      <font>
        <name>Roboto</name>
        <size>12.0</size>
        <style>0</style>
      </font>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>0</x>
        <y>0</y>
        <comment>amplitude = red, filter = blue, brown = pitch</comment>
        <groupName>parametric&amp;timbre</groupName>
        <backgroundColor>0x282828ff</backgroundColor>
        <borderColor>0x000000ff</borderColor>
        <labelTextColor>0xffffffff</labelTextColor>
        <titleEnabled>true</titleEnabled>
        <width>165</width>
        <height>188</height>
        <font>
          <name>Roboto</name>
          <size>12.0</size>
          <style>2</style>
        </font>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqfreq1</objectName>
          <x>10</x>
          <y>35</y>
          <automationAllowed>true</automationAllowed>
          <minimum>20.0</minimum>
          <maximum>300.0</maximum>
          <value>199.05936381408762</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>freq1</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>335</y>
          <groupName>timbre</groupName>
          <backgroundColor>0x00000033</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>20</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>timbre</objectName>
            <x>10</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='-60094465'>
                <name>+ amp = + bright</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-60094464'>
                <name>+ amp = - bright</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='-60094463'>
                <name>inactive</name>
                <value>2</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqQ2</objectName>
          <x>60</x>
          <y>120</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.7</minimum>
          <maximum>5.0</maximum>
          <value>2.458306923347288</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>q2</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqQ3</objectName>
          <x>60</x>
          <y>205</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.7</minimum>
          <maximum>5.0</maximum>
          <value>3.0570208190267474</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>q3</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
          <objectName>TimbreModuleON</objectName>
          <x>5</x>
          <y>5</y>
          <automationAllowed>true</automationAllowed>
          <label/>
          <selected>true</selected>
          <randomizable>true</randomizable>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
          <objectName>pareqdepth</objectName>
          <x>10</x>
          <y>295</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>1.0</maximum>
          <bdresolution>0.01</bdresolution>
          <value>0.0</value>
          <sliderWidth>150</sliderWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>false</valueDisplayEnabled>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqfreq3</objectName>
          <x>10</x>
          <y>205</y>
          <automationAllowed>true</automationAllowed>
          <minimum>1000.0</minimum>
          <maximum>6000.0</maximum>
          <value>3918.97247587894</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>freq3</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqQ1</objectName>
          <x>60</x>
          <y>35</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.7</minimum>
          <maximum>5.0</maximum>
          <value>4.394626580778879</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>q1</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqgain1</objectName>
          <x>110</x>
          <y>35</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>5.0</maximum>
          <value>2.860498048947449</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>gain</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqfreq2</objectName>
          <x>10</x>
          <y>120</y>
          <automationAllowed>true</automationAllowed>
          <minimum>300.0</minimum>
          <maximum>1000.0</maximum>
          <value>764.7484690423591</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>freq2</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqgain3</objectName>
          <x>110</x>
          <y>205</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>5.0</maximum>
          <value>1.0</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>gain</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
          <objectName>paraEQON</objectName>
          <x>40</x>
          <y>10</y>
          <automationAllowed>true</automationAllowed>
          <label>parametric</label>
          <selected>false</selected>
          <randomizable>true</randomizable>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
          <objectName>pareqgain2</objectName>
          <x>110</x>
          <y>120</y>
          <automationAllowed>true</automationAllowed>
          <minimum>0.0</minimum>
          <maximum>5.0</maximum>
          <value>3.565453445237132</value>
          <knobWidth>45</knobWidth>
          <randomizable>true</randomizable>
          <valueDisplayEnabled>true</valueDisplayEnabled>
          <label>gain</label>
          <labelEnabled>true</labelEnabled>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>65</x>
          <y>290</y>
          <label>depth</label>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='-60094461' name='pareqfreq1' label='' min='20.0' max='300.0' bdresolution='-1' automationEnabled='false' value='199.05936381408762'>
      <line name='' version='2' max='300.0' min='20.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='199.05936381408762'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094459' name='timbre' label='' min='0.0' max='2.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='2.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094457' name='pareqQ2' label='' min='0.7' max='5.0' bdresolution='-1' automationEnabled='false' value='2.458306923347288'>
      <line name='' version='2' max='5.0' min='0.7' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.458306923347288'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094455' name='pareqQ3' label='' min='0.7' max='5.0' bdresolution='-1' automationEnabled='false' value='3.0570208190267474'>
      <line name='' version='2' max='5.0' min='0.7' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.0570208190267474'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094453' name='TimbreModuleON' 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='-60094451' name='pareqdepth' 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='-60094449' name='pareqfreq3' label='' min='1000.0' max='6000.0' bdresolution='-1' automationEnabled='false' value='3918.97247587894'>
      <line name='' version='2' max='6000.0' min='1000.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3918.97247587894'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094447' name='pareqQ1' label='' min='0.7' max='5.0' bdresolution='-1' automationEnabled='false' value='4.394626580778879'>
      <line name='' version='2' max='5.0' min='0.7' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='4.394626580778879'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094445' name='pareqgain1' label='' min='0.0' max='5.0' bdresolution='-1' automationEnabled='false' value='2.860498048947449'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.860498048947449'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094443' name='pareqfreq2' label='' min='300.0' max='1000.0' bdresolution='-1' automationEnabled='false' value='764.7484690423591'>
      <line name='' version='2' max='1000.0' min='300.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='764.7484690423591'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094441' name='pareqgain3' label='' min='0.0' max='5.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094439' name='paraEQON' label='' min='0.0' max='1.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-60094437' name='pareqgain2' label='' min='0.0' max='5.0' bdresolution='-1' automationEnabled='false' value='3.565453445237132'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.565453445237132'/>
      </line>
    </parameter>
  </parameterList>
  <presetGroup name='Presets'/>
  <opcodeList/>
</instrument>