<instrument type='blue.orchestra.BlueSynthBuilder' editEnabled='true'>
  <name>PhaseShaper - Orch</name>
  <comment>PHASESHAPER - Orch
version 1.1
Released: 2007.12.14
Author: Steven Yi

This instrument is modeled after the Casio CZ-101 and its Phase Distortion Synthesis (called phaseshaping here by the author, due to its likeness to waveshaping but on the phasor). The PhaseShaper instrument is not meant to exactly replicate the CZ-101 but instead is inspired by it, intentionally leaving out some features (like noise modulation and amp key follow) and adding in unique ones (like the ability to draw in the phaseshaping tables). It is suggested the user read about the CZ-101 before using this instrument. This instruments oscilators are made up of a phasor indexing into a phaseshape table, which in turns yields the indexes to use to read into a sine wave table.

Some notes on using this synthesizer:

-for each oscilator you can draw each phaseshaping table to affect the waveform for that oscilator

-the amplitude envelope functions as a standard ADSR

-the wave envelope will determine how much of the phaseshaping to apply to the phasor; using a 0 value for wave envelope will give a straight phasor and thus a simple sine tone will be generated, while a 1.0 value for the wave envelope will yield the fully phaseshaped phasor, yielding the complex waveform; values in between will yield an interpolated value between the straight phasor and fully phaseshaped phasor. The wave envelope will have range between the values given for Wave Min and Wave Max, allowing the user to configure the degree to which the wave envelope will affect the phaseshaping.

-if &quot;Use Amp Env&quot; is selected for the Wave Envelope, the wave env ADSR settings will be ignored and the value from the amplitude envelope will be used in its place

-if &quot;Wave Key Follow&quot; is selected, the value of the wave envelope will be further rescaled depending on the frequency of the note.  The &quot;Follow Range&quot; allows the user to configure the minimum and maximum frequency in cps to affect the sound.  The frequency of the note then will affect how much of the wave envelope will be applied, from the Wave Low to the Wave High in the Follow Range section.  Notice that the Wave Low value here should be higher than the the Wave High value in this section.  This is so that for notes at lower frequencies they will get a fuller range of the wave envelope, while notes at higher frequencies will have a smaller range of the wave envelope (which produces a tone closer to a sine wave).  This is very much akin to how many acoustic instruments behave.

-the Detune parameter only affects the detuned version of the Oscilators (Osc 1&apos; and 2&apos;), and those are only used if the 1 + 2&apos; or 1 + 1&apos; oscilator paths are used.

-the Mix parameter will determine how much of Oscilator 1 and how much of Oscilator 2 to use when using 1 + 2&apos; or 1 + 1&apos; oscilator paths.  This will also affect the signals when Ring Modulate is chosen.

-the vibrato parameters allow for a delay in seconds before vibrato starts as well as time it takes to go from no vibrato to full vibrato once vibrato is set to begin; oscilator 2 can be set to share the vibrato settings of oscilator 1

[History]

v1.1 - 2007.12.14
-fixed use of envelopes (OSC 2 attack was not being used due to incorrect setting of widget property, some OSC2 values were using OSC1 settings)
-removed use of balance opcode
-fixed calculation of p3 addition to check release time of OSC 1 or OSC 2

v1.0 - 2007.12.08
-initial release</comment>
  <globalOrc>giphaseshape_&lt;INSTR_ID&gt;	ftgen 0, 0, 65537, -7, &lt;phaseshape_phaseshape&gt;
giphaseshape2_&lt;INSTR_ID&gt;	ftgen 0, 0, 65537, -7, &lt;phaseshape2_phaseshape&gt;
;[once]{
gi_sine	ftgen 0, 0, 65537, 10, 1
;}
</globalOrc>
  <globalSco/>
  <instrumentText>ipch 	getFrequency p4
ipch2 	getFrequency p5

kpchline 	line ipch, p3, ipch2

iamp 	= ampdb(p6)
iSpace	= p7
ienvType	= p8

if (ienvType == 0) then
    if (&lt;mix&gt; == 1 || &lt;mix&gt; == 4) then 
        p3 = p3 + &lt;release&gt;
    elseif (&lt;mix&gt; == 2) then
	p3 = p3 + &lt;release2&gt;
    else
	iextra = (&lt;release&gt; &gt; &lt;release2&gt;) ? &lt;release&gt; : &lt;release2&gt;
	p3 = p3 + iextra
    endif
endif

kenv	yiEnvelope ienvType, &lt;attack&gt;, &lt;decay&gt;, &lt;sustain&gt;, &lt;release&gt;
kenv2	yiEnvelope ienvType, &lt;attack2&gt;, &lt;decay2&gt;, &lt;sustain2&gt;, &lt;release2&gt;

kmix = &lt;mix&gt;
kwavemin = &lt;waveMin&gt;
kwavemax = &lt;waveMax&gt;
kwaverange = kwavemin - kwavemax

kwavemin2 = &lt;waveMin2&gt;
kwavemax2 = &lt;waveMax2&gt;
kwaverange2 = kwavemax2 - kwavemin2

kfollowWaveLow = &lt;followWaveLow&gt;
kfollowWaveHigh = &lt;followWaveHigh&gt;
kfollowWaveRange = kfollowWaveHigh - kfollowWaveHigh

kfollowWaveLow2 = &lt;followWaveLow2&gt;
kfollowWaveHigh2 = &lt;followWaveHigh2&gt;
kfollowWaveRange2 = kfollowWaveHigh2 - kfollowWaveHigh2

ilfoType = &lt;lfoType&gt;
klfoAmp = &lt;lfoAmp&gt;
klfoFreq = &lt;lfoFreq&gt;
ilfoDelay = &lt;lfoDelay&gt;
ilfoRise = &lt;lfoRise&gt;

if (&lt;lfoType2&gt; == -2) then
	ilfoType2 = &lt;lfoType&gt;
	klfoAmp2 = &lt;lfoAmp&gt;
	klfoFreq2 = &lt;lfoFreq&gt;
	ilfoDelay2 = &lt;lfoDelay&gt;
	ilfoRise2 = &lt;lfoRise&gt;
else
	ilfoType2 = &lt;lfoType2&gt;
	klfoAmp2 = &lt;lfoAmp2&gt;
	klfoFreq2 = &lt;lfoFreq2&gt;
	ilfoDelay2 = &lt;lfoDelay2&gt;
	ilfoRise2 = &lt;lfoRise2&gt;
endif

/* SOUND GENERATION CODE */

if (ilfoType &lt; 0) then
	alfo = 0
else
	alfo 	lfo	 klfoAmp, klfoFreq, ilfoType
	alfodelay linseg 0, ilfoDelay, 0, ilfoRise, 1, .1, 1
	alfo = alfodelay * alfo
endif

andx	phasor kpchline + alfo

; Oscilator 1
if (kmix == 2) kgoto skipOscil1
andx2	table3	andx, giphaseshape_&lt;INSTR_ID&gt;, 1


if (&lt;useAmpEnv&gt; == 1)  then
	kwaveenv = kenv
else 
	kwaveenv 	adsr &lt;waveAttack&gt;, &lt;waveDecay&gt;, &lt;waveSustain&gt;, &lt;waveRelease&gt;
endif
kwaveenv = (kwaveenv * kwaverange) + kwavemin
if (&lt;waveKeyFollow&gt; == 1) then
	kwaverange rangeValue kpchline, &lt;followRangeMin&gt;, &lt;followRangeMax&gt;
	kwaverange = (kwaverange * kfollowWaveRange) + kfollowWaveHigh
	kwaveenv = kwaverange * kwaveenv
endif
andx2 	sigMix	kwaveenv, andx, andx2

aout	table3  andx2, gi_sine, 1

; Osilator 1&apos;
if (kmix != 4) kgoto skipOscil1
andxdetune phasor kpchline * &lt;detune&gt;
andx2	table3	andxdetune, giphaseshape_&lt;INSTR_ID&gt;, 1


if (&lt;useAmpEnv&gt; == 1)  then
	kwaveenv = kenv
else 
	kwaveenv	adsr &lt;waveAttack&gt;, &lt;waveDecay&gt;, &lt;waveSustain&gt;, &lt;waveRelease&gt;
endif
kwaveenv = (kwaveenv * kwaverange) + kwavemin
if (&lt;waveKeyFollow&gt; == 1) then
	; kwaverange calculated in Oscilator 1
	kwaveenv = kwaverange * kwaveenv
endif
andx2 	sigMix	kwaveenv, andx, andx2

aout_detune	table3  andx2, gi_sine, 1

skipOscil1:


/* OSCILATOR 2 */
if (kmix == 1 || kmix == 4) kgoto skipOscil2
if (ilfoType2 &lt; 0) then
	alfo = 0
else
	alfo 	lfo	 klfoAmp2, klfoFreq2, ilfoType2
	alfodelay linseg 0, ilfoDelay2, 0, ilfoRise2, 1, .1, 1
	alfo = alfodelay * alfo
endif

andx	phasor kpchline + alfo


; Oscilator 2
if (kmix != 2) kgoto skipOscil2
andx2	table3	andx, giphaseshape2_&lt;INSTR_ID&gt;, 1

if (&lt;useAmpEnv2&gt; == 1) then
	kwaveenv = kenv2
else 
	kwaveenv	adsr &lt;waveAttack2&gt;, &lt;waveDecay2&gt;, &lt;waveSustain2&gt;, &lt;waveRelease2&gt;
endif
kwaveenv = (kwaveenv * kwaverange2) + kwavemin2
if (&lt;waveKeyFollow2&gt; == 1) then
	kwaverange rangeValue kpchline, &lt;followRangeMin2&gt;, &lt;followRangeMax2&gt;
	kwaverange = (kwaverange * kfollowWaveRange2) + kfollowWaveLow2
	kwaveenv = kwaverange * kwaveenv
endif
andx2 	sigMix	kwaveenv, andx, andx2

aout2	table3  andx2, gi_sine, 1

skipOscil2:

; Osilator 2&apos;
if (kmix != 3) kgoto skipOscil2end
andxdetune phasor kpchline * &lt;detune2&gt;
andx2	table3	andxdetune, giphaseshape2_&lt;INSTR_ID&gt;, 1

if (&lt;useAmpEnv2&gt; == 1) then
	kwaveenv = kenv2
else 
	kwaveenv	adsr &lt;waveAttack2&gt;, &lt;waveDecay2&gt;, &lt;waveSustain2&gt;, &lt;waveRelease2&gt;
endif
kwaveenv = (kwaveenv * kwaverange2) + kwavemin2
if (&lt;waveKeyFollow2&gt; == 1) then
	;kwaverange calculated in Oscilator 2
	kwaveenv = kwaverange * kwaveenv
endif
andx2 	sigMix	kwaveenv, andx, andx2

aout2_detune	table3  andx2, gi_sine, 1

skipOscil2end:

aout = aout * kenv
aout_detune = aout_detune * kenv
aout2 = aout2 * kenv2
aout2_detune = aout2_detune * kenv2

if (kmix == 2) then
	aout = aout2
elseif (kmix == 3) then
	if (&lt;ringModulate&gt; == 1) then
		aout 	sigMixRing	&lt;mixerPercent&gt;, aout, aout2_detune
	else 
		aout 	sigMix		&lt;mixerPercent&gt;, aout, aout2_detune
	endif
elseif (kmix == 4) then
	if (&lt;ringModulate&gt; == 1) then
		aout 	sigMixRing	&lt;mixerPercent&gt;, aout, aout_detune
	else 
		aout 	sigMix		&lt;mixerPercent&gt;, aout, aout_detune
	endif
endif

aout	= aout * iamp 

aLeft, aRight	pan_equal_power	aout, iSpace


blueMixerOut aLeft, aRight</instrumentText>
  <graphicInterface editEnabled='false'>
    <uniqueNameManager nameIndex='80' defaultPrefix='bsbObj'/>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>decay</objectName>
      <x>66</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.0074653337</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>sustain</objectName>
      <x>119</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.94038945</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>release</objectName>
      <x>172</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.008680064</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>attack</objectName>
      <x>13</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.0025097746</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>17</x>
      <y>278</y>
      <label>Attack</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>70</x>
      <y>277</y>
      <label>Decay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>120</x>
      <y>277</y>
      <label>Sustain</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>173</x>
      <y>277</y>
      <label>Release</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>11</x>
      <y>251</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Amp Env&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLineObject'>
      <objectName>phaseshape</objectName>
      <x>11</x>
      <y>66</y>
      <canvasWidth>330</canvasWidth>
      <canvasHeight>160</canvasHeight>
      <xMax>65537.0</xMax>
      <relativeXValues>true</relativeXValues>
      <separatorType>Comma</separatorType>
      <leadingZero>false</leadingZero>
      <locked>false</locked>
      <lines>
        <line name='phaseshape' version='2' max='1.0' min='0.0' resolution='-1.0' color='-14623488' rightBound='true'>
          <linePoint x='0.0' y='0.0'/>
          <linePoint x='0.2361111' y='0.2837838'/>
          <linePoint x='0.39583334' y='0.6418919'/>
          <linePoint x='0.6944444' y='0.7702703'/>
          <linePoint x='1.0' y='1.0'/>
        </line>
      </lines>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown'>
      <objectName>mix</objectName>
      <x>764</x>
      <y>137</y>
      <bsbDropdownItemList>
        <bsbDropdownItem>
          <name>1</name>
          <value>1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>2</name>
          <value>2</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>1 + 2&apos;</name>
          <value>3</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>1 + 1&apos;</name>
          <value>4</value>
        </bsbDropdownItem>
      </bsbDropdownItemList>
      <selectedIndex>2</selectedIndex>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>ringModulate</objectName>
      <x>761</x>
      <y>163</y>
      <label>Ring Modulate</label>
      <selected>false</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveDecay</objectName>
      <x>64</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.18714456</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveSustain</objectName>
      <x>117</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.6337011</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveRelease</objectName>
      <x>170</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.1461223</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveAttack</objectName>
      <x>11</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.099999994</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>15</x>
      <y>394</y>
      <label>Attack</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>68</x>
      <y>394</y>
      <label>Decay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>118</x>
      <y>394</y>
      <label>Sustain</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>171</x>
      <y>394</y>
      <label>Release</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>11</x>
      <y>368</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Wave Env&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>waveKeyFollow</objectName>
      <x>226</x>
      <y>369</y>
      <label>Wave Key Follow</label>
      <selected>false</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveMin</objectName>
      <x>233</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.38306776</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>232</x>
      <y>394</y>
      <label>Wave Min</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>10</x>
      <y>484</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Follow Range&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followRangeMin</objectName>
      <x>10</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>20.0</minimum>
      <maximum>20000.0</maximum>
      <value>345.51382</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followRangeMax</objectName>
      <x>70</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>20.0</minimum>
      <maximum>20000.0</maximum>
      <value>2097.9163</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>12</x>
      <y>512</y>
      <label>Freq Min</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>70</x>
      <y>512</y>
      <label>Freq Max</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>useAmpEnv</objectName>
      <x>126</x>
      <y>369</y>
      <label>Use Amp Env</label>
      <selected>true</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>decay2</objectName>
      <x>450</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.015985759</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>sustain2</objectName>
      <x>503</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.92221606</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>release2</objectName>
      <x>556</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.015382156</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>attack2</objectName>
      <x>397</x>
      <y>296</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.122475706</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>401</x>
      <y>277</y>
      <label>Attack</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>454</x>
      <y>277</y>
      <label>Decay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>504</x>
      <y>277</y>
      <label>Sustain</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>557</x>
      <y>277</y>
      <label>Release</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>395</x>
      <y>251</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Amp Env&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLineObject'>
      <objectName>phaseshape2</objectName>
      <x>395</x>
      <y>66</y>
      <canvasWidth>330</canvasWidth>
      <canvasHeight>160</canvasHeight>
      <xMax>65537.0</xMax>
      <relativeXValues>true</relativeXValues>
      <separatorType>Comma</separatorType>
      <leadingZero>false</leadingZero>
      <locked>false</locked>
      <lines>
        <line name='phaseshape' version='2' max='1.0' min='0.0' resolution='-1.0' color='-14623488' rightBound='true'>
          <linePoint x='0.0' y='0.0'/>
          <linePoint x='0.28819445' y='0.527027'/>
          <linePoint x='1.0' y='1.0'/>
        </line>
      </lines>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveDecay2</objectName>
      <x>448</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.014572331</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveSustain2</objectName>
      <x>501</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.020920053</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveRelease2</objectName>
      <x>554</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.1461223</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveAttack2</objectName>
      <x>395</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.025</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>399</x>
      <y>394</y>
      <label>Attack</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>452</x>
      <y>394</y>
      <label>Decay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>502</x>
      <y>394</y>
      <label>Sustain</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>555</x>
      <y>394</y>
      <label>Release</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>395</x>
      <y>368</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Wave Env&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>waveKeyFollow2</objectName>
      <x>606</x>
      <y>369</y>
      <label>Wave Key Follow</label>
      <selected>false</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>394</x>
      <y>484</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Follow Range&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followRangeMin2</objectName>
      <x>394</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>20.0</minimum>
      <maximum>20000.0</maximum>
      <value>60.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followRangeMax2</objectName>
      <x>455</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>20.0</minimum>
      <maximum>20000.0</maximum>
      <value>4400.3867</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>395</x>
      <y>512</y>
      <label>Freq Min</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>452</x>
      <y>512</y>
      <label>Freq Max</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>useAmpEnv2</objectName>
      <x>506</x>
      <y>369</y>
      <label>Use Amp Env</label>
      <selected>true</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>146</x>
      <y>485</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Detune&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>detune</objectName>
      <x>151</x>
      <y>530</y>
      <automationAllowed>true</automationAllowed>
      <minimum>1.0E-4</minimum>
      <maximum>8.0</maximum>
      <value>1.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>150</x>
      <y>511</y>
      <label>Multiplier</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>528</x>
      <y>486</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Detune&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>detune2</objectName>
      <x>533</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>1.0E-4</minimum>
      <maximum>8.0</maximum>
      <value>1.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>532</x>
      <y>512</y>
      <label>Multiplier</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>764</x>
      <y>35</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Mix&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>mixerPercent</objectName>
      <x>764</x>
      <y>65</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.73747355</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>10</x>
      <y>6</y>
      <label>&lt;html&gt;&lt;font size=&quot;+2&quot;&gt;&lt;b&gt;PhaseShaper&lt;/b&gt;&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>11</x>
      <y>39</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;OSC 1&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>395</x>
      <y>39</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;OSC 2&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveMax</objectName>
      <x>292</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>1.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>291</x>
      <y>394</y>
      <label>Wave Max</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveMin2</objectName>
      <x>615</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.47654298</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>614</x>
      <y>394</y>
      <label>Wave Min</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>waveMax2</objectName>
      <x>674</x>
      <y>413</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>1.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>673</x>
      <y>394</y>
      <label>Wave Max</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followWaveLow</objectName>
      <x>10</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>1.0</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followWaveHigh</objectName>
      <x>70</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.19913206</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>8</x>
      <y>604</y>
      <label>Wave Low</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>68</x>
      <y>604</y>
      <label>Wave High</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followWaveLow2</objectName>
      <x>394</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.52172506</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>followWaveHigh2</objectName>
      <x>454</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.18007824</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>389</x>
      <y>604</y>
      <label>Wave Low</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>449</x>
      <y>604</y>
      <label>Wave High</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoAmp</objectName>
      <x>233</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>100.0</maximum>
      <value>0.86569434</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoFreq</objectName>
      <x>290</x>
      <y>531</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>20.0</maximum>
      <value>0.5376907</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>232</x>
      <y>512</y>
      <label>LFO Amp</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>290</x>
      <y>512</y>
      <label>LFO Freq</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoDelay</objectName>
      <x>233</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.2638973</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>229</x>
      <y>604</y>
      <label>LFO Delay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>233</x>
      <y>484</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Vibrato&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown'>
      <objectName>lfoType</objectName>
      <x>229</x>
      <y>696</y>
      <bsbDropdownItemList>
        <bsbDropdownItem>
          <name>Disabled</name>
          <value>-1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Sine</name>
          <value>0</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Triangle</name>
          <value>1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Square (Bipolar)</name>
          <value>2</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Square (Unipolar)</name>
          <value>3</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Saw Tooth</name>
          <value>4</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Saw Tooth (Down)</name>
          <value>5</value>
        </bsbDropdownItem>
      </bsbDropdownItemList>
      <selectedIndex>0</selectedIndex>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoAmp2</objectName>
      <x>615</x>
      <y>533</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>100.0</maximum>
      <value>1.6291983</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoFreq2</objectName>
      <x>672</x>
      <y>533</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>20.0</maximum>
      <value>2.0799963</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>614</x>
      <y>514</y>
      <label>LFO Amp</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>672</x>
      <y>514</y>
      <label>LFO Freq</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoDelay2</objectName>
      <x>615</x>
      <y>625</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.1</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>611</x>
      <y>606</y>
      <label>LFO Delay</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown'>
      <objectName>lfoType2</objectName>
      <x>611</x>
      <y>698</y>
      <bsbDropdownItemList>
        <bsbDropdownItem>
          <name>Use Osc 1 Setting</name>
          <value>-2</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Disabled</name>
          <value>-1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Sine</name>
          <value>0</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Triangle</name>
          <value>1</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Square (Bipolar)</name>
          <value>2</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Square (Unipolar)</name>
          <value>3</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Saw Tooth</name>
          <value>4</value>
        </bsbDropdownItem>
        <bsbDropdownItem>
          <name>Saw Tooth (Down)</name>
          <value>5</value>
        </bsbDropdownItem>
      </bsbDropdownItemList>
      <selectedIndex>0</selectedIndex>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>615</x>
      <y>486</y>
      <label>&lt;html&gt;&lt;font size=&quot;+1&quot;&gt;Vibrato&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoRise</objectName>
      <x>290</x>
      <y>623</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.18162566</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>290</x>
      <y>604</y>
      <label>LFO Rise</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>674</x>
      <y>606</y>
      <label>LFO Rise</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>lfoRise2</objectName>
      <x>672</x>
      <y>624</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10.0</maximum>
      <value>0.2638973</value>
      <knobWidth>50</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
  </graphicInterface>
  <bsbParameterList>
    <parameter uniqueId='-616843098' name='attack' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.0025097746'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843076' name='attack2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.122475706'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843104' name='decay' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.0074653337'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843082' name='decay2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.015985759'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843062' name='detune' label='' min='1.0E-4' max='8.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='8.0' min='1.0E-4' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843060' name='detune2' label='' min='1.0E-4' max='8.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='8.0' min='1.0E-4' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843084' name='followRangeMax' label='' min='20.0' max='20000.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20000.0' min='20.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='2097.9163'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843064' name='followRangeMax2' label='' min='20.0' max='20000.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20000.0' min='20.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='4400.3867'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843086' name='followRangeMin' label='' min='20.0' max='20000.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20000.0' min='20.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='345.51382'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843066' name='followRangeMin2' label='' min='20.0' max='20000.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20000.0' min='20.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='60.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843048' name='followWaveHigh' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.19913206'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843044' name='followWaveHigh2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.18007824'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843050' name='followWaveLow' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843046' name='followWaveLow2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.52172506'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843042' name='lfoAmp' label='' min='0.0' max='100.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='100.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.86569434'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843036' name='lfoAmp2' label='' min='0.0' max='100.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='100.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.6291983'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843038' name='lfoDelay' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.2638973'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843032' name='lfoDelay2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.1'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843040' name='lfoFreq' label='' min='0.0' max='20.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.5376907'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843034' name='lfoFreq2' label='' min='0.0' max='20.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='20.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='2.0799963'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843030' name='lfoRise' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.18162566'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843028' name='lfoRise2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.2638973'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843058' name='mixerPercent' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.73747355'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843100' name='release' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.008680064'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843078' name='release2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.015382156'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843102' name='sustain' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.94038945'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843080' name='sustain2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.92221606'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843090' name='waveAttack' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.099999994'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843068' name='waveAttack2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.025'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843096' name='waveDecay' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.18714456'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843074' name='waveDecay2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.014572331'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843056' name='waveMax' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843052' name='waveMax2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843088' name='waveMin' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.38306776'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843054' name='waveMin2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.47654298'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843092' name='waveRelease' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.1461223'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843070' name='waveRelease2' label='' min='0.0' max='10.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.1461223'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843094' name='waveSustain' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.6337011'/>
      </line>
    </parameter>
    <parameter uniqueId='-616843072' name='waveSustain2' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.020920053'/>
      </line>
    </parameter>
  </bsbParameterList>
  <presetGroup name=''>
    <preset name='Preset 1'>
      <setting name='attack'>ver2:0.0025097746</setting>
      <setting name='bsbObj31'>ver2:0.0021455435</setting>
      <setting name='decay'>ver2:0.0074653337</setting>
      <setting name='decay2'>ver2:0.015985759</setting>
      <setting name='detune'>ver2:1</setting>
      <setting name='detune2'>ver2:1</setting>
      <setting name='followRangeMax'>ver2:2097.9162597656</setting>
      <setting name='followRangeMax2'>ver2:4400.38671875</setting>
      <setting name='followRangeMin'>ver2:345.5138244629</setting>
      <setting name='followRangeMin2'>ver2:60</setting>
      <setting name='followWaveHigh'>ver2:0.199132055</setting>
      <setting name='followWaveHigh2'>ver2:0.1800782382</setting>
      <setting name='followWaveLow'>ver2:1</setting>
      <setting name='followWaveLow2'>ver2:0.5217250586</setting>
      <setting name='lfoAmp'>ver2:0.865694344</setting>
      <setting name='lfoAmp2'>ver2:1.6291983128</setting>
      <setting name='lfoDelay'>ver2:0.2638972998</setting>
      <setting name='lfoDelay2'>ver2:0.1000000015</setting>
      <setting name='lfoFreq'>ver2:0.5376906991</setting>
      <setting name='lfoFreq2'>ver2:2.0799963474</setting>
      <setting name='lfoRise'>ver2:0.1816256642</setting>
      <setting name='lfoRise2'>ver2:0.2638972998</setting>
      <setting name='lfoType'>0</setting>
      <setting name='lfoType2'>0</setting>
      <setting name='mix'>2</setting>
      <setting name='mixerPercent'>ver2:0.7374735475</setting>
      <setting name='phaseshape'>version=2@_@phaseshape:0.0:0.0:0.2361111:0.2837838:0.39583334:0.6418919:0.6944444:0.7702703:1.0:1.0</setting>
      <setting name='phaseshape2'>version=2@_@phaseshape:0.0:0.0:0.28819445:0.527027:1.0:1.0</setting>
      <setting name='release'>ver2:0.0086800642</setting>
      <setting name='release2'>ver2:0.0153821558</setting>
      <setting name='ringModulate'>false</setting>
      <setting name='sustain'>ver2:0.9403894544</setting>
      <setting name='sustain2'>ver2:0.9222160578</setting>
      <setting name='useAmpEnv'>true</setting>
      <setting name='useAmpEnv2'>true</setting>
      <setting name='waveAttack'>ver2:0.099999994</setting>
      <setting name='waveAttack2'>ver2:0.0250000004</setting>
      <setting name='waveDecay'>ver2:0.1871445626</setting>
      <setting name='waveDecay2'>ver2:0.0145723308</setting>
      <setting name='waveKeyFollow'>false</setting>
      <setting name='waveKeyFollow2'>false</setting>
      <setting name='waveMax'>ver2:1</setting>
      <setting name='waveMax2'>ver2:1</setting>
      <setting name='waveMin'>ver2:0.3830677569</setting>
      <setting name='waveMin2'>ver2:0.4765429795</setting>
      <setting name='waveRelease'>ver2:0.1461223066</setting>
      <setting name='waveRelease2'>ver2:0.1461223066</setting>
      <setting name='waveSustain'>ver2:0.633701086</setting>
      <setting name='waveSustain2'>ver2:0.0209200531</setting>
    </preset>
    <preset name='Preset 2'>
      <setting name='attack'>ver2:0.0025097746</setting>
      <setting name='bsbObj31'>ver2:0.0021455435</setting>
      <setting name='decay'>ver2:0.0074653337</setting>
      <setting name='decay2'>ver2:0.015985759</setting>
      <setting name='detune'>ver2:1</setting>
      <setting name='detune2'>ver2:1.7769999504</setting>
      <setting name='followRangeMax'>ver2:2097.9162597656</setting>
      <setting name='followRangeMax2'>ver2:4400.38671875</setting>
      <setting name='followRangeMin'>ver2:345.5138244629</setting>
      <setting name='followRangeMin2'>ver2:60</setting>
      <setting name='followWaveHigh'>ver2:0.199132055</setting>
      <setting name='followWaveHigh2'>ver2:0.1800782382</setting>
      <setting name='followWaveLow'>ver2:1</setting>
      <setting name='followWaveLow2'>ver2:0.5217250586</setting>
      <setting name='lfoAmp'>ver2:0.865694344</setting>
      <setting name='lfoAmp2'>ver2:1.6291983128</setting>
      <setting name='lfoDelay'>ver2:0.2638972998</setting>
      <setting name='lfoDelay2'>ver2:0.1000000015</setting>
      <setting name='lfoFreq'>ver2:0.5376906991</setting>
      <setting name='lfoFreq2'>ver2:2.0799963474</setting>
      <setting name='lfoRise'>ver2:0.1816256642</setting>
      <setting name='lfoRise2'>ver2:0.2638972998</setting>
      <setting name='lfoType'>1</setting>
      <setting name='lfoType2'>0</setting>
      <setting name='mix'>2</setting>
      <setting name='mixerPercent'>ver2:0.2864866555</setting>
      <setting name='phaseshape'>version=2@_@phaseshape:0.0:0.0:0.2361111:0.2837838:0.39583334:0.6418919:0.6944444:0.7702703:1.0:1.0</setting>
      <setting name='phaseshape2'>version=2@_@phaseshape:0.0:0.0:0.28819445:0.527027:1.0:1.0</setting>
      <setting name='release'>ver2:0.0086800642</setting>
      <setting name='release2'>ver2:0.0153821558</setting>
      <setting name='ringModulate'>false</setting>
      <setting name='sustain'>ver2:0.9403894544</setting>
      <setting name='sustain2'>ver2:0.9222160578</setting>
      <setting name='useAmpEnv'>true</setting>
      <setting name='useAmpEnv2'>true</setting>
      <setting name='waveAttack'>ver2:0.099999994</setting>
      <setting name='waveAttack2'>ver2:0.0250000004</setting>
      <setting name='waveDecay'>ver2:0.1871445626</setting>
      <setting name='waveDecay2'>ver2:0.0145723308</setting>
      <setting name='waveKeyFollow'>false</setting>
      <setting name='waveKeyFollow2'>false</setting>
      <setting name='waveMax'>ver2:1</setting>
      <setting name='waveMax2'>ver2:1</setting>
      <setting name='waveMin'>ver2:0.3830677569</setting>
      <setting name='waveMin2'>ver2:0.4765429795</setting>
      <setting name='waveRelease'>ver2:0.1461223066</setting>
      <setting name='waveRelease2'>ver2:0.1461223066</setting>
      <setting name='waveSustain'>ver2:0.633701086</setting>
      <setting name='waveSustain2'>ver2:0.0209200531</setting>
    </preset>
    <preset name='Preset 3'>
      <setting name='attack'>ver2:0.7630395293</setting>
      <setting name='bsbObj31'>ver2:0.7459443808</setting>
      <setting name='decay'>ver2:0.0074653337</setting>
      <setting name='decay2'>ver2:0.015985759</setting>
      <setting name='detune'>ver2:1</setting>
      <setting name='detune2'>ver2:1</setting>
      <setting name='followRangeMax'>ver2:2097.9162597656</setting>
      <setting name='followRangeMax2'>ver2:4400.38671875</setting>
      <setting name='followRangeMin'>ver2:345.5138244629</setting>
      <setting name='followRangeMin2'>ver2:60</setting>
      <setting name='followWaveHigh'>ver2:0.199132055</setting>
      <setting name='followWaveHigh2'>ver2:0.1800782382</setting>
      <setting name='followWaveLow'>ver2:1</setting>
      <setting name='followWaveLow2'>ver2:0.5217250586</setting>
      <setting name='lfoAmp'>ver2:0.865694344</setting>
      <setting name='lfoAmp2'>ver2:1.6291983128</setting>
      <setting name='lfoDelay'>ver2:0.2638972998</setting>
      <setting name='lfoDelay2'>ver2:0.1000000015</setting>
      <setting name='lfoFreq'>ver2:0.5376906991</setting>
      <setting name='lfoFreq2'>ver2:2.0799963474</setting>
      <setting name='lfoRise'>ver2:0.1816256642</setting>
      <setting name='lfoRise2'>ver2:0.2638972998</setting>
      <setting name='lfoType'>1</setting>
      <setting name='lfoType2'>0</setting>
      <setting name='mix'>2</setting>
      <setting name='mixerPercent'>ver2:0.2864866555</setting>
      <setting name='phaseshape'>version=2@_@phaseshape:0.0:0.0:0.2361111:0.2837838:0.39583334:0.6418919:0.6944444:0.7702703:1.0:1.0</setting>
      <setting name='phaseshape2'>version=2@_@phaseshape:0.0:0.0:0.28819445:0.527027:1.0:1.0</setting>
      <setting name='release'>ver2:0.0086800642</setting>
      <setting name='release2'>ver2:0.0153821558</setting>
      <setting name='ringModulate'>false</setting>
      <setting name='sustain'>ver2:0.9403894544</setting>
      <setting name='sustain2'>ver2:0.9222160578</setting>
      <setting name='useAmpEnv'>false</setting>
      <setting name='useAmpEnv2'>false</setting>
      <setting name='waveAttack'>ver2:0.6126334667</setting>
      <setting name='waveAttack2'>ver2:1.4041087627</setting>
      <setting name='waveDecay'>ver2:0.1871445626</setting>
      <setting name='waveDecay2'>ver2:0.0145723308</setting>
      <setting name='waveKeyFollow'>false</setting>
      <setting name='waveKeyFollow2'>false</setting>
      <setting name='waveMax'>ver2:1</setting>
      <setting name='waveMax2'>ver2:1</setting>
      <setting name='waveMin'>ver2:0.8277792335</setting>
      <setting name='waveMin2'>ver2:0.7675464153</setting>
      <setting name='waveRelease'>ver2:0.1461223066</setting>
      <setting name='waveRelease2'>ver2:0.1461223066</setting>
      <setting name='waveSustain'>ver2:0.633701086</setting>
      <setting name='waveSustain2'>ver2:0.0209200531</setting>
    </preset>
    <preset name='Preset 4'>
      <setting name='attack'>ver2:1.4848703146</setting>
      <setting name='bsbObj31'>ver2:2.2545216084</setting>
      <setting name='decay'>ver2:0.2265958488</setting>
      <setting name='decay2'>ver2:0.7324813604</setting>
      <setting name='detune'>ver2:2.0322134495</setting>
      <setting name='detune2'>ver2:6.1101360321</setting>
      <setting name='followRangeMax'>ver2:15946.8759765625</setting>
      <setting name='followRangeMax2'>ver2:19871.357421875</setting>
      <setting name='followRangeMin'>ver2:12620.3388671875</setting>
      <setting name='followRangeMin2'>ver2:1971.7719726562</setting>
      <setting name='followWaveHigh'>ver2:0.0825177878</setting>
      <setting name='followWaveHigh2'>ver2:0.4699362218</setting>
      <setting name='followWaveLow'>ver2:0.942504406</setting>
      <setting name='followWaveLow2'>ver2:0.6658129096</setting>
      <setting name='lfoAmp'>ver2:1.1149544716</setting>
      <setting name='lfoAmp2'>ver2:80.1294937134</setting>
      <setting name='lfoDelay'>ver2:0.0619423613</setting>
      <setting name='lfoDelay2'>ver2:2.2327432632</setting>
      <setting name='lfoFreq'>ver2:1.8310955763</setting>
      <setting name='lfoFreq2'>ver2:2.7975308895</setting>
      <setting name='lfoRise'>ver2:1.3833731413</setting>
      <setting name='lfoRise2'>ver2:5.6871542931</setting>
      <setting name='lfoType'>3</setting>
      <setting name='lfoType2'>7</setting>
      <setting name='mix'>3</setting>
      <setting name='mixerPercent'>ver2:0.8503993154</setting>
      <setting name='phaseshape'>version=2@_@phaseshape:0.0:0.0:0.2361111:0.2837838:0.39583334:0.6418919:0.6944444:0.7702703:1.0:1.0</setting>
      <setting name='phaseshape2'>version=2@_@phaseshape:0.0:0.0:0.28819445:0.527027:1.0:1.0</setting>
      <setting name='release'>ver2:0</setting>
      <setting name='release2'>ver2:4.1149697304</setting>
      <setting name='ringModulate'>false</setting>
      <setting name='sustain'>ver2:0</setting>
      <setting name='sustain2'>ver2:0.5175994635</setting>
      <setting name='useAmpEnv'>true</setting>
      <setting name='useAmpEnv2'>false</setting>
      <setting name='waveAttack'>ver2:1.0097606182</setting>
      <setting name='waveAttack2'>ver2:3.9776842594</setting>
      <setting name='waveDecay'>ver2:0.9351066351</setting>
      <setting name='waveDecay2'>ver2:0.3300595582</setting>
      <setting name='waveKeyFollow'>false</setting>
      <setting name='waveKeyFollow2'>false</setting>
      <setting name='waveMax'>ver2:0.5515425205</setting>
      <setting name='waveMax2'>ver2:0.4091310501</setting>
      <setting name='waveMin'>ver2:0.4243190885</setting>
      <setting name='waveMin2'>ver2:0.2966817617</setting>
      <setting name='waveRelease'>ver2:3.7564327717</setting>
      <setting name='waveRelease2'>ver2:3.9626896381</setting>
      <setting name='waveSustain'>ver2:0.7421127558</setting>
      <setting name='waveSustain2'>ver2:0.1548743546</setting>
    </preset>
  </presetGroup>
  <opcodeList>
    <udo>
      <opcodeName>getFrequency</opcodeName>
      <outTypes>i</outTypes>
      <inTypes>i</inTypes>
      <codeBody>ipch 	xin

iout	= (ipch &lt; 15 ? cpspch(ipch) : ipch)
	
	xout	iout
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>yiEnvelope</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>ioooooo</inTypes>
      <codeBody>ienvType, iattack, idecay, isus, irel, iOldAmp, iNewAmp	xin

itie	tival
idur = p3

iEndAmp = iNewAmp / iOldAmp


if (ienvType == 0) then
	kenv	adsr	iattack, idecay, isus, irel
elseif (ienvType == 1) then	
	kenv 	linseg	0, p3 * .5, 1, p3 * .5, 0
	kenv logcurve kenv, 1.5
elseif (ienvType == 2) then	
	kenv	linseg 	0, p3 - .1, 1, .1, 0	

elseif (ienvType == 3) then

    if (itie == 0 &amp;&amp; p3 &lt; 0) then
        ; this is an initial note within a group of tied notes
        kenv	linseg	0, .2, 1,  .2, 1
       
    elseif (p3 &gt; 0 &amp;&amp; itie == 1) then
        ; this is an end note out of a group of tied notes
        kenv linseg	1, p3 - 1, 1, 1, 0
 
    elseif (p3 &gt; 0 &amp;&amp; itie == 0) then
        ; this is a stand alone note
        kenv adsr iattack, idecay, isus, irel
    else
        ; this is a middle note within a group of tied notes (p3 &lt; 0 &amp;&amp; itie == 1)
        kenv line 1, abs(p3), iEndAmp
    endif  

endif

	xout 	kenv
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>sigMix</opcodeName>
      <outTypes>a</outTypes>
      <inTypes>kaa</inTypes>
      <codeBody>kmix, asig1, asig2 xin

xout (asig1 * (1 - kmix)) + (asig2 * kmix)</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>sigMixRing</opcodeName>
      <outTypes>a</outTypes>
      <inTypes>kaa</inTypes>
      <codeBody>kmix, asig1, asig2 xin

xout (asig1 * (1 - kmix)) * (asig2 * kmix)</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>rangeValue</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>kkk</inTypes>
      <codeBody>kfreq, kmin, kmax	xin

if (kfreq &lt;= kmin) then
	kval = 1
elseif (kfreq &gt;= kmax) then
	kval = 0
else
	krange = kmax - kmin
	kval = 1 - ((kfreq - kmin) / krange)
endif

	xout kval

</codeBody>
      <comments>This will return 1 if below or equal to min and 0 as it approaches max. Currently this is done only linearly.</comments>
    </udo>
    <udo>
      <opcodeName>pan_equal_power</opcodeName>
      <outTypes>aa</outTypes>
      <inTypes>ak</inTypes>
      <codeBody>ain, kpan       xin
kangl   =  $M_PI_2 * (kpan + 0.5)
        
	xout    ain * sin(kangl), ain * cos(kangl)

</codeBody>
      <comments>pan_equal_power - Equal Power Panning

SYNTAX
a1, a2    pan_equal_power    asig, kpan

CREDITS
Author: Michael Gogins, converted by Steven Yi, Rewritten by Istvan Varga for Speed</comments>
    </udo>
    <udo>
      <opcodeName>noiseModulate</opcodeName>
      <outTypes>a</outTypes>
      <inTypes>a</inTypes>
      <codeBody>asig xin

arnd random 0,1

	xout	asig * arnd</codeBody>
      <comments></comments>
    </udo>
  </opcodeList>
</instrument>