<instrument type='blue.orchestra.BlueSynthBuilder' editEnabled='true'>
  <name>Stretcher</name>
  <comment>
DESCRIPTION:

Stretcher is a sampler for mono and stereo samples. 
It is capable of stretching the sample in realtime. Or plays them in reverse.
Attention: by activating the filter, also the filter envelope drawings become available.

In Midi Pitch mode, Midi C4 = normal pitch of sample
In Frequency mode, frequency note 8.00 = normal pitch of sample
Also, real values can be used.

note example:
i2	0	0.8	60	1.0         ; P4 = midi value, P5 = amplitude
i2	0	0.2	261.625565	1.0 ; P4 = frequency, P5 = amplitude
i2	0	0.2	1   	1.0         ; P4 = real value, P5 = amplitude

CONTROLLERS:

see the help balloon when hovering over the controllers in the instrument. Help can be turned off by pressing the &apos;I&apos; button next to the play bar.

---

version 2, February 2023
- initial version


</comment>
  <globalOrc/>
  <globalSco/>
  <instrumentText>;==================P4 and P5 from score=========================================

ipitch, iamp k_SCORE_format_Sampler i(&lt;SCORE_format_Sampler&gt;), p4, p5           ; choose between Frequency or Midi option

;------------------------------check file---------------------------------------

Suf, iok     k_suffixSOUND     &lt;soundfile&gt;, 1

if (iok == 0)  then
else
          prints    &quot;\ninstrument %d needs an audiofile!\n\n&quot;, &lt;INSTR_ID&gt;       ; not the suffix from the list
          goto nosound                                                          ; jump to label
endif

;;=========================amplitude envelope===================================

if &lt;envelope amplitude ON&gt; == 1 then
    if i(&lt;amplitude exponential switch&gt;) == 1 then                              ; create amplitude envelope
        kenvamp loopxseg    &lt;envelope amplitude rate&gt;/p3, 0, 0, &lt;envelope_amplitude envelope&gt;, 0    ; exponential envelope
    else
        kenvamp loopseg     &lt;envelope amplitude rate&gt;/p3, 0, 0, &lt;envelope_amplitude envelope&gt;, 0    ; or linear envelepe
    endif

    kjitamp jitter &lt;amplitude jitter depth&gt;, &lt;amplitude jitter min&gt;, &lt;amplitude jitter max&gt;         ; create some amplitude jitter     
    aampenv =   (kenvamp + kjitamp) * &lt;sample pregain&gt;                       ; pregain for loaded sample + jitter                                                
else
    aampenv = &lt;sample pregain&gt;                                               ; no amplitude envelope, only pregain
endif

;================================a few settings=================================

kcoarsetuning =   &lt;tuning coarse&gt;                                               ; set coarse tuning
kfinetuning =   &lt;tuning fine&gt;                                                   ; fine tuning
ktuning  =   (kcoarsetuning + kfinetuning)                                      ; add them

;================================pitch envelope=================================

if (&lt;envelope pitch bend ON&gt;) == 1 then                                         ; envelope pitchbend
    kenvpitchbend  loopxseg     &lt;envelope pitch rate&gt;/p3, 0, 0, &lt;envelope_pitch bend envelope&gt;, 0  ; exponential envelope
    kenvpitchbend   *=  &lt;pitchbend depth&gt;
    kjitpitch jitter &lt;pitch jitter depth&gt;, &lt;pitch jitter min&gt;, &lt;pitch jitter max&gt;   ; create some pitch jitter  
    ktuning  =   (ktuning + kjitpitch) + kenvpitchbend  
else
    kenvpitchbend   =   0
endif  

;===============================================================================

if (ktuning &gt;=1) then                                                           ; compensate for loud screaming when tuning goes up
    kcomp          logcurve ktuning, 1.50
else 
    kcomp = 1
endif

;================================vibrato========================================
if (&lt;VibratoON&gt; == 1)  then                                                    
    if i(&lt;vibrato fade in&gt;) == 1 then
        kvibfade_in   expseg 0.01, p3, 1                                        ; fade in the vibrato
    else
        kvibfade_in =   1                                                       ; vibrato starts right away
    endif
    kvib = lfo3(&lt;vibrato speed&gt;, &lt;vibrato wave&gt;)
    kvib    *=  &lt;vibrato depth&gt; * kvibfade_in
else
    kvib    =   0
endif

;============================check sample channels==============================

identify    =   &lt;INSTR_ID&gt;                                                      ; for printing the right instrument
ichnls  filenchnls  &lt;soundfile&gt;                                                 ; check number of channels
ilenorg    filelen     &lt;soundfile&gt;                                              ; calculate length of original soundfile

if (&lt;check mono/stereo&gt; == 1) then   
    if ichnls == 1 then                                                     
        prints &quot;\n    ---instr.%d Stretcher --&gt; mono sample\n\n&quot;, &lt;INSTR_ID&gt;
    elseif (ichnls == 2) then
        prints &quot;\n    ---instr.%d Stretcher --&gt; stereo sample\n\n&quot;, &lt;INSTR_ID&gt;
    endif
endif                  
;=============================Sample ===========================================   

itrapwindow =   &lt;window size&gt; / &lt;window overlap&gt;                                ; create an error trap, protection 
if (itrapwindow &lt;= 1) then
    prints &quot;\n    ---instr.%d Stretcher --&gt; window size and overlap values NOT OK\n\n&quot;, &lt;INSTR_ID&gt;
    iamp = 0                                                                    ; print warning, produce silence
endif

inewlen =   (i(&lt;sample length&gt;)*.01)
ioffset  =   (i(&lt;sample offset&gt;)*.01)    
inewlen -=  ioffset
              
atrns   linseg   1, i(&lt;transient lenght&gt;), 0                                    ; lenght of transient
kcps  =  ipitch * ktuning + kvib
idel = &lt;window size&gt;/sr                                                         ; calculate latency
    if ichnls == 1 then                                                         ; IF mono sample
        iSample, ilen, ioff     sampleONCE+ &lt;soundfile&gt;, ioffset, inewlen       ; import mono soundfile, set length and offset
        fsig    pvstanal  &lt;sample timescaling&gt; , &lt;sample pregain&gt; * iamp, ipitch  * ktuning + kvib, iSample, &lt;onset&gt;, &lt;sample wrap&gt;, 0,  &lt;window size&gt;, &lt;window overlap&gt;
        asigFL  pvsynth   fsig                                                  ; analyzed sample

        asigL   diskin2 &lt;soundfile&gt;,  kcps * ktuning, ioff                      ; direct signals, offset
        asigL   *=  atrns * iamp                                                ; set length

        if (&lt;sample latency&gt; == 1) then
                asigL   delay   asigL, (idel) * .5                              ; delay dry signal, to align it with the analyzed signal
        endif

        asigFL  ntrpol  asigL, asigFL, &lt;transientmix&gt;                           ; mix transient with PVOC signal  
        asigFR  =   asigFL                                                      ; both channels are now mono mixed

    elseif ichnls == 2 then                                                     ; IF stereo sample

        iSampleL, iSampleR, ilen, ioff      sampleONCEstereo+ &lt;soundfile&gt;, ioffset, inewlen ; import stereo soundfile, set length and offset

        fsigL   pvstanal  &lt;sample timescaling&gt;, &lt;sample pregain&gt; * iamp, (ipitch * ktuning + kvib) , iSampleL, &lt;onset&gt;, &lt;sample wrap&gt;, 0,  &lt;window size&gt;, &lt;window overlap&gt;
        fsigR   pvstanal  &lt;sample timescaling&gt;, &lt;sample pregain&gt; * iamp, (ipitch * ktuning + kvib) , iSampleR, &lt;onset&gt;, &lt;sample wrap&gt;, 0,  &lt;window size&gt;, &lt;window overlap&gt;
        asigFL  pvsynth   fsigL                                                 ; analyzed signals
        asigFR  pvsynth   fsigR

        asigL, asigR   diskin2 &lt;soundfile&gt;,  kcps * ktuning, ioff               ; direct signals, offset
        asigL   *=  atrns * iamp                                                ; set length
        asigR   *=  atrns * iamp

           if &lt;MS&gt; == 1 then                                                    ; switch for MS stereo decoding
                asigFL, asigFR  ms2st   asigFL, asigFR, &lt;MSwidth&gt;               ; decode effect &amp;
                asigL, asigR    ms2st   asigL, asigR, &lt;MSwidth&gt;                 ; direct
           endif
        if (&lt;sample latency&gt; == 1) then
                asigL   delay   asigL, idel                                     ; delay dry signals, to align it with the analyzed signals
                asigR   delay   asigR, idel
        endif
        asigFL  ntrpol  asigL, asigFL, &lt;transientmix&gt;                           ; mix direct &amp; effect 
        asigFR  ntrpol  asigR, asigFR, &lt;transientmix&gt; 

    elseif ichnls &gt; 2 then                                                      ; skip IF multichannel, protection
        prints &quot;\n    ---instr.%d Stretcher --&gt; multichannel soundfiles NOT ACCEPTED\n\n&quot;, &lt;INSTR_ID&gt;
        asigFL  =   0 
        asigFR  =   asigFL      
    endif

;============================information sample=================================

if (i(&lt;show sample length&gt;) == 1) then                                                 
    prints &quot;\n    ---instr.%d Stretcher --&gt; original sample lenght: %5.2f seconds&quot;, &lt;INSTR_ID&gt;, ilenorg
    prints &quot;\n                         --&gt;  present sample lenght: %5.2f seconds&quot;,  inewlen * ilenorg
    if changed2(&lt;sample timescaling&gt;) == 1 then
            reinit  CALC_RESTRETCH
    endif
    CALC_RESTRETCH:
    printks2 &quot;                         --&gt;   length AFTER stretch: %5.2f seconds\n\n&quot;, inewlen * ilenorg * (1/i(&lt;sample timescaling&gt;))
rireturn
endif

;===============================================================================

if ktuning == 0 then                                                            ; protection
    asigFL   =   0
    asigFR   =   0
endif

;================================filter=========================================

if &lt;filterON&gt; == 1 then

    if i(&lt;filter exponential switch&gt;) == 1 then                                 ; graphic filter envelope
        kenvfilter loopxseg    (&lt;rate filter envelope&gt;/p3), 0, 0, &lt;envelope_filter envelope&gt;, 0        ; exponential envelope
    else
        kenvfilter loopseg     (&lt;rate filter envelope&gt;/p3), 0, 0, &lt;envelope_filter envelope&gt;, 0        ; or linear envelepe
    endif

    kcutoff  	expcurve    &lt;filter frequency cutoff&gt;, 2                        ; turn linear into exponential

    if &lt;filter follower&gt; == 0 then                                              ; disable follower
        acutoff   =   kcutoff
    elseif &lt;filter follower&gt; == 1 then                                          ; amp --&gt; filter
        acutoff = iamp * kcutoff;
    elseif &lt;filter follower&gt; == 2 then                                          ; -(amp) --&gt; filter
        acutoff = kcutoff - (iamp * kcutoff)
    elseif &lt;filter follower&gt; == 3 then                                          ; key --&gt; filter
        acutoff   =   kcutoff * ipitch ;* kenvpitchbend
    elseif &lt;filter follower&gt; == 4 then                                          ; -(key) --&gt; filter
        acutoff   =   kcutoff * 1/ipitch; * kenvpitchbend
    endif

    if (&lt;filter envelopes&gt; == 0) then                                           ; envelopes disabled
        ; do nothing, just pass through
    elseif (&lt;filter envelopes&gt; == 1) then                                       ; filter ADS envelope
        aretrig init 1
        agate = linseg:a(1, p3 - i(&lt;ADSR release&gt;), 1, 0, 0, i(&lt;ADSR release&gt;), 0)
        acutenv adsr140 agate, aretrig, &lt;filter attack&gt;, &lt;filter decay&gt;, &lt;filter sustain&gt;, &lt;filter release&gt; * &lt;ADSR release&gt;
        acutoff *=  acutenv * &lt;filter ADS depth&gt; 
    elseif (&lt;filter envelopes&gt; == 2) then                                       ; filter graphical envelope
        acutoff   *=  (kenvfilter * &lt;filter envelope depth&gt;)
    elseif (&lt;filter envelopes&gt; == 3) then                                       ; filter ADS envelope and graphical combined
        acuto   =   (kenvfilter  * &lt;filter envelope depth&gt; * 10000)
        aretrig init 1
        agate = linseg:a(1, p3 - i(&lt;ADSR release&gt;), 1, 0, 0, i(&lt;ADSR release&gt;), 0)
        afilterads adsr140 agate, aretrig, &lt;filter attack&gt;, &lt;filter decay&gt;, &lt;filter sustain&gt;, &lt;filter release&gt; * &lt;ADSR release&gt;
        acutoff = acuto + (afilterads * &lt;filter ADS depth&gt; * 10000)
    endif

    acutoff *=  &lt;filter total depth&gt;                                            ; total depth of filter
    acutoff  limit   acutoff, 20, 21000                                         ; limit frequency band of filter

; the filters 
    kQ = &lt;filter resonance&gt;	
    al, abpL, ahpL  zdf_2pole_mode  asigFL, acutoff, kQ                         ; don&apos;t use lowpass filter here
    ar, abpR, ahpR  zdf_2pole_mode  asigFR, acutoff, kQ                         ; use only for bandpass and highpass (12 dB)
    alpL            zdf_ladder      asigFL, acutoff, kQ                         ; but use this lowpass (24 dB)
    alpR            zdf_ladder      asigFR, acutoff, kQ
    alpL    *=  &lt;filter lowpass gain&gt;                                           ; filters gain Left
    ahpL    *=  &lt;filter highpass gain&gt;
    abpL    *=  &lt;filter bandpass gain&gt;

    alpR    *=  &lt;filter lowpass gain&gt;                                           ; filters gain Right
    ahpR    *=  &lt;filter highpass gain&gt;
    abpR    *=  &lt;filter bandpass gain&gt;

    aoutL   =   (ahpL + alpL + abpL)                                            ; mix all filter gains
    aoutR   =   (ahpR + alpR + abpR)
    aoutL   ntrpol  aoutL, asigFL, &lt;output filters&gt;
    aoutR   ntrpol  aoutR, asigFR, &lt;output filters&gt;

else
        aoutL    =   asigFL
        aoutR    =   asigFR
endif

;=======================outputs=================================================

if ichnls == 1 &amp;&amp; (&lt;autopanning if mono&gt; == 1) then                             ; autopan mono sample
    krandP randi .3, 1, .61
    krandP =   (krandP +1)*.5
    asigL, asigR   pan2 aoutL, krandP, 0                                                                             
else
    asigL   =   aoutL
    asigR   =   aoutR
endif

;=================================tremolo Module================================

asigL, asigR    k_Tremolo_adsr140_STEREO    &lt;tremolo trigger&gt;, asigL, asigR, &lt;tremolo attack&gt;, &lt;tremolo decay&gt;, &lt;tremolo sustain&gt;, &lt;tremolo release&gt;, &lt;tremolo envelope speed&gt;, &lt;mix tremolo&gt;   

;============================ADSR amplitude Module==============================
 
if (&lt;ADSR ON&gt; == 1) then
    aret init 1
    agte = linseg:a(1, p3 - i(&lt;ADSR release&gt;), 1, 0, 0, i(&lt;ADSR release&gt;), 0)
    aa    adsr140    agte, aret, &lt;ADSR attack&gt;, &lt;ADSR decay&gt;, &lt;ADSR sustain&gt;, &lt;ADSR release&gt;
else
    aa  =   1
endif
;===========================output==============================================


asigL *= aampenv * aa * &lt;gain Left&gt;
asigR *= aampenv * aa * &lt;gain Right&gt;

blueMixerOut asigL, asigR

nosound:</instrumentText>
  <alwaysOnInstrumentText></alwaysOnInstrumentText>
  <graphicInterface editEnabled='false'>
    <gridSettings>
      <width>5</width>
      <height>5</height>
      <gridStyle>DOT</gridStyle>
      <snapGridEnabled>true</snapGridEnabled>
    </gridSettings>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
      <objectName></objectName>
      <x>0</x>
      <y>0</y>
      <groupName>Group</groupName>
      <backgroundColor>0x00000033</backgroundColor>
      <borderColor>0x000000ff</borderColor>
      <labelTextColor>0xffffffff</labelTextColor>
      <titleEnabled>true</titleEnabled>
      <width>20</width>
      <height>20</height>
      <font>
        <name>Roboto</name>
        <size>12.0</size>
        <style>0</style>
      </font>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>1138</x>
        <y>0</y>
        <comment>Score Module - use this to add extra P-fields in Score and instrumentcode.
Serves as a reminder what the Pfield is for.
</comment>
        <groupName>Score Module</groupName>
        <backgroundColor>0x66666600</backgroundColor>
        <borderColor>0x000000ff</borderColor>
        <labelTextColor>0xff0000ff</labelTextColor>
        <titleEnabled>false</titleEnabled>
        <width>137</width>
        <height>20</height>
        <font>
          <name>Roboto</name>
          <size>12.0</size>
          <style>0</style>
        </font>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>134</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>36</x>
          <y>53</y>
          <label>volume</label>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>243</y>
          <label>14</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>113</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>12</x>
          <y>10</y>
          <label>Pfield description</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>156</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>197</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>159</y>
          <label>10</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>34</y>
          <label>4</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>36</x>
          <y>34</y>
          <label>frequency</label>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>117</y>
          <label>8</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>239</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>263</y>
          <label>15</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>97</y>
          <label>7</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>219</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>178</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>53</y>
          <label>5</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>260</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>74</y>
          <label>6</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>14</x>
          <y>138</y>
          <label>9</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>222</y>
          <label>13</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>179</y>
          <label>11</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
          <objectName></objectName>
          <x>6</x>
          <y>199</y>
          <label>12</label>
          <font>
            <name>Roboto</name>
            <size>14.0</size>
            <style>0</style>
          </font>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>93</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
          <objectName></objectName>
          <x>28</x>
          <y>71</y>
          <value></value>
          <textFieldWidth>100</textFieldWidth>
        </bsbObject>
      </bsbObject>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>0</x>
        <y>0</y>
        <groupName>S T R E T  C  H   E    R </groupName>
        <backgroundColor>0x4d4d4dff</backgroundColor>
        <borderColor>0x4d1a4dff</borderColor>
        <labelTextColor>0xffffffff</labelTextColor>
        <titleEnabled>true</titleEnabled>
        <width>20</width>
        <height>20</height>
        <font>
          <name>Roboto</name>
          <size>14.0</size>
          <style>1</style>
        </font>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>10</y>
          <groupName>sample settings</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>940</width>
          <height>20</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample length</objectName>
            <x>65</x>
            <y>55</y>
            <comment>length of this slider represents the total of the sample</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>7.26</value>
            <sliderWidth>750</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>885</x>
            <y>10</y>
            <label>pregain</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>16</y>
            <label>sample</label>
            <font>
              <name>Roboto</name>
              <size>20.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>show sample length</objectName>
            <x>612</x>
            <y>13</y>
            <automationAllowed>true</automationAllowed>
            <label>show sample lengths</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>673</x>
            <y>180</y>
            <label>size</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>15</x>
            <y>150</y>
            <groupName>Group</groupName>
            <backgroundColor>0x3a3a3aff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>false</titleEnabled>
            <width>635</width>
            <height>20</height>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>onset</objectName>
              <x>560</x>
              <y>5</y>
              <comment>suspends timescaling momentarily so the onsets are not modified</comment>
              <automationAllowed>true</automationAllowed>
              <label>onset</label>
              <selected>true</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
              <objectName>transient lenght</objectName>
              <x>444</x>
              <y>10</y>
              <comment>duration of direct sample attack</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <bdresolution>0.001</bdresolution>
              <value>0.213</value>
              <sliderWidth>100</sliderWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
              <objectName>transientmix</objectName>
              <x>59</x>
              <y>10</y>
              <comment>adds attack portion of sample</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <bdresolution>0.05</bdresolution>
              <value>0.55</value>
              <sliderWidth>255</sliderWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>sample latency</objectName>
              <x>560</x>
              <y>25</y>
              <comment>compensate start time to allign with direct signal</comment>
              <automationAllowed>true</automationAllowed>
              <label>latency</label>
              <selected>true</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>310</x>
              <y>15</y>
              <label>effect</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>352</x>
              <y>15</y>
              <label>transient lenght</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>10</x>
              <y>14</y>
              <label>transient</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>check mono/stereo</objectName>
            <x>612</x>
            <y>33</y>
            <automationAllowed>false</automationAllowed>
            <label>report number of  channels</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>19</x>
            <y>60</y>
            <label>length %</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>22</x>
            <y>90</y>
            <label>offset %</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>soundfile</objectName>
            <x>75</x>
            <y>15</y>
            <comment>import sample to use</comment>
            <fileName>/home/menno/accordeon.wav</fileName>
            <textFieldWidth>500</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>sample pregain</objectName>
            <x>880</x>
            <y>23</y>
            <comment>pregain for sample</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>2.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>0.6</value>
            <sliderHeight>147</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample timescaling</objectName>
            <x>65</x>
            <y>115</y>
            <comment>stretch sample by ...</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>-10.0</minimum>
            <maximum>10.0</maximum>
            <bdresolution>0</bdresolution>
            <value>0.34999942779541016</value>
            <sliderWidth>750</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>26</x>
            <y>120</y>
            <label>time X</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>753</x>
            <y>130</y>
            <label>forward</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>window size</objectName>
            <x>698</x>
            <y>178</y>
            <comment>The FFT size in samples</comment>
            <automationAllowed>false</automationAllowed>
            <selectedIndex>3</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1167315756'>
                <name>256</name>
                <value>256</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315757'>
                <name>512</name>
                <value>512</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315758'>
                <name>1024</name>
                <value>1024</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315759'>
                <name>2048</name>
                <value>2048</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315760'>
                <name>4096</name>
                <value>4096</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample offset</objectName>
            <x>65</x>
            <y>85</y>
            <comment>set start loop point in sample</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</value>
            <sliderWidth>750</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>73</x>
            <y>130</y>
            <label>backwards</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>763</x>
            <y>180</y>
            <label>overlap</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>window overlap</objectName>
            <x>805</x>
            <y>178</y>
            <comment>The distance in samples (?hop size?) between overlapping analysis frames</comment>
            <automationAllowed>false</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1167315753'>
                <name>256</name>
                <value>256</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315754'>
                <name>512</name>
                <value>512</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315755'>
                <name>1024</name>
                <value>1024</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>sample wrap</objectName>
            <x>815</x>
            <y>13</y>
            <comment>loop the sample</comment>
            <automationAllowed>true</automationAllowed>
            <label>loop</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>245</y>
          <comment>amplitude = red, filter = blue, brown = pitch</comment>
          <groupName>Group</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>940</width>
          <height>188</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLineObject'>
            <objectName>envelope</objectName>
            <x>10</x>
            <y>10</y>
            <comment>amplitude = red, filter = blue, brown = pitch</comment>
            <canvasWidth>920</canvasWidth>
            <canvasHeight>124</canvasHeight>
            <xMax>1.0</xMax>
            <relativeXValues>true</relativeXValues>
            <separatorType>COMMA</separatorType>
            <leadingZero>false</leadingZero>
            <locked>false</locked>
            <lines>
              <line name='amplitude envelope' version='2' max='1.0' min='0.0' bdresolution='-1' color='-6750157' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='1.0'/>
                <linePoint x='1.0' y='1.0'/>
              </line>
              <line name='filter envelope' version='2' max='1.0' min='0.0' bdresolution='-1' color='-16751002' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.6229299363057325' y='1.0'/>
                <linePoint x='0.778343949044586' y='0.013333333333333308'/>
                <linePoint x='1.0' y='0.5'/>
              </line>
              <line name='pitch bend envelope' version='2' max='0.5' min='-0.5' bdresolution='-1' color='-23296' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.2814569536423841' y='-0.33636363636363636'/>
                <linePoint x='0.3090507726269316' y='0.1454545454545455'/>
                <linePoint x='0.34105960264900664' y='-0.28181818181818186'/>
                <linePoint x='0.35320088300220753' y='0.09090909090909094'/>
                <linePoint x='0.369757174392936' y='-0.36363636363636365'/>
                <linePoint x='0.6059602649006622' y='0.5'/>
                <linePoint x='1.0' y='0.0'/>
              </line>
            </lines>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>440</y>
          <groupName>amplitude envelope</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>215</width>
          <height>122</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>envelope amplitude ON</objectName>
            <x>10</x>
            <y>10</y>
            <comment>OFF/ON graphical amplitude envelope</comment>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>amplitude exponential switch</objectName>
            <x>10</x>
            <y>84</y>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>amplitude jitter max</objectName>
            <x>165</x>
            <y>10</y>
            <comment>maximum value for randomness</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>40.0</maximum>
            <value>3.9344994736367256</value>
            <knobWidth>35</knobWidth>
            <randomizable>false</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>max</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>amplitude jitter depth</objectName>
            <x>83</x>
            <y>10</y>
            <comment>adds randomness to amplitude </comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <value>0.35670092630744854</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>jitter</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>envelope amplitude rate</objectName>
            <x>35</x>
            <y>10</y>
            <comment>repeat amplitude envelope as set in window</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>20.0</maximum>
            <value>1.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>false</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>scale</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>31</x>
            <y>85</y>
            <label>exponential</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>amplitude jitter min</objectName>
            <x>123</x>
            <y>10</y>
            <comment>minimum value for randomness</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>38.0</maximum>
            <value>0.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>false</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>min</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>665</x>
          <y>440</y>
          <comment>4 envelopes for amplitude</comment>
          <groupName>ADSR</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>122</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>2</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>ADSR ON</objectName>
            <x>5</x>
            <y>10</y>
            <comment>ON/OFF</comment>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>ADSR decay</objectName>
            <x>90</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>2.0</maximum>
            <value>0.0</value>
            <knobWidth>50</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>decay</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>ADSR sustain</objectName>
            <x>155</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>1.0</value>
            <knobWidth>50</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>sustain</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>ADSR release</objectName>
            <x>225</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>1.0</value>
            <knobWidth>50</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>release</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>ADSR attack</objectName>
            <x>25</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <value>0.0</value>
            <knobWidth>50</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>attack</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>230</x>
          <y>440</y>
          <groupName>pitch envelope</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>215</width>
          <height>77</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>pitch jitter depth</objectName>
            <x>90</x>
            <y>10</y>
            <comment>adds randomness to pitch envelope</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>0.3</maximum>
            <value>0.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>jitter</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>envelope pitch bend ON</objectName>
            <x>10</x>
            <y>10</y>
            <comment>on/off</comment>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>pitchbend depth</objectName>
            <x>60</x>
            <y>80</y>
            <comment>depth of scaling</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.12</value>
            <sliderWidth>150</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>85</y>
            <label>scaledepth</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>pitch jitter min</objectName>
            <x>130</x>
            <y>10</y>
            <comment>minimum value for randomness</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>1.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>min</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>pitch jitter max</objectName>
            <x>170</x>
            <y>10</y>
            <comment>maximum value for randomness</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>5.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>max</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>envelope pitch rate</objectName>
            <x>40</x>
            <y>10</y>
            <comment>repeat pitch envelope</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>20.0</maximum>
            <value>8.455636634346682</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>scale</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>585</y>
          <groupName>filters</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>940</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>filter envelopes</objectName>
            <x>365</x>
            <y>70</y>
            <comment>bypass envelopes, or choose one of them or both of them</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>1</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1167315741'>
                <name>disabled</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315742'>
                <name>AttDecSusRel</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315743'>
                <name>Graphic</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315744'>
                <name>ADS+Graphic</name>
                <value>3</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>885</x>
            <y>85</y>
            <label>filtered</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>74</x>
            <y>13</y>
            <groupName>envelopes</groupName>
            <backgroundColor>0x3a3a3aff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>false</titleEnabled>
            <width>20</width>
            <height>90</height>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>72</x>
              <y>6</y>
              <label>bndP</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter bandpass gain</objectName>
              <x>68</x>
              <y>18</y>
              <comment>gain of bandpass filter</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>0.5</maximum>
              <bdresolution>0.1</bdresolution>
              <value>0.0</value>
              <sliderHeight>56</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter resonance</objectName>
              <x>160</x>
              <y>6</y>
              <comment>gain of feedback of filters</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.5</minimum>
              <maximum>25.0</maximum>
              <value>2.4090156355342707</value>
              <knobWidth>40</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>resonance</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter lowpass gain</objectName>
              <x>4</x>
              <y>18</y>
              <comment>gain of lowpass filter</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>2.5</maximum>
              <bdresolution>0.1</bdresolution>
              <value>0.0</value>
              <sliderHeight>56</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter frequency cutoff</objectName>
              <x>116</x>
              <y>6</y>
              <comment>cutoff frequency of filters</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>4.35</minimum>
              <maximum>14.3</maximum>
              <value>9.686463988711413</value>
              <knobWidth>40</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>cutoff</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>15</x>
              <y>6</y>
              <label>low</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter highpass gain</objectName>
              <x>36</x>
              <y>18</y>
              <comment>gain of highpass filter</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>0.5</maximum>
              <bdresolution>0.1</bdresolution>
              <value>0.5</value>
              <sliderHeight>56</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter total depth</objectName>
              <x>217</x>
              <y>6</y>
              <comment>gain of filters</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>1.0</value>
              <knobWidth>40</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>depth</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>42</x>
              <y>6</y>
              <label>high</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>870</x>
            <y>15</y>
            <label>mix</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>filterON</objectName>
            <x>10</x>
            <y>10</y>
            <comment>filters ON or OFF</comment>
            <automationAllowed>true</automationAllowed>
            <label>filters</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>362</x>
            <y>15</y>
            <label>filter follow modes</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>output filters</objectName>
            <x>855</x>
            <y>25</y>
            <comment>mix direct with filtered signal</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</value>
            <sliderHeight>80</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>filter follower</objectName>
            <x>355</x>
            <y>35</y>
            <comment>open and close filter depending on amplitude or frequency</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1167315745'>
                <name>envelopes</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315746'>
                <name>amp follow</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315747'>
                <name>amp follow invert</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315748'>
                <name>key follow</name>
                <value>3</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315749'>
                <name>key follow invert</name>
                <value>4</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>494</x>
            <y>13</y>
            <groupName>envelopes</groupName>
            <backgroundColor>0x3a3a3aff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>false</titleEnabled>
            <width>313</width>
            <height>91</height>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>67</x>
              <y>6</y>
              <label>adsr</label>
              <font>
                <name>Roboto</name>
                <size>18.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>187</x>
              <y>6</y>
              <label>depth</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>filter exponential switch</objectName>
              <x>283</x>
              <y>39</y>
              <comment>treat anvelope ar exponential</comment>
              <automationAllowed>true</automationAllowed>
              <label/>
              <selected>true</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter sustain</objectName>
              <x>91</x>
              <y>32</y>
              <comment>sustain portion of envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.7019409394555494</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>sustain</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>305</x>
              <y>6</y>
              <label>depth</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter decay</objectName>
              <x>53</x>
              <y>32</y>
              <comment>decay portion of envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>1.0</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>decay</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>284</x>
              <y>55</y>
              <label>exp</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter attack</objectName>
              <x>11</x>
              <y>32</y>
              <comment>attack portion of envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>3.0</maximum>
              <value>3.0</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>attack</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>rate filter envelope</objectName>
              <x>239</x>
              <y>32</y>
              <comment>frequency rate of filter envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>1.0</minimum>
              <maximum>30.0</maximum>
              <value>10.946494472975278</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>rate</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter envelope depth</objectName>
              <x>298</x>
              <y>20</y>
              <comment>gain of filter envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <bdresolution>0.05</bdresolution>
              <value>1.0</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>249</x>
              <y>6</y>
              <label>graph</label>
              <font>
                <name>Roboto</name>
                <size>18.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter release</objectName>
              <x>140</x>
              <y>32</y>
              <comment>release portion of filter envelope.
Is relative to Amplitude envelope

</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.6429052975811664</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>release</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter ADS depth</objectName>
              <x>177</x>
              <y>20</y>
              <comment>gain of ADS envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <bdresolution>0.01</bdresolution>
              <value>1.0</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>885</x>
            <y>25</y>
            <label>direct</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>953</x>
          <y>8</y>
          <groupName>globals</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>674</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>77</x>
            <y>483</y>
            <label>R</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>57</x>
            <y>483</y>
            <label>L</label>
            <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>10</y>
            <comment>trigger for tremolo envelope</comment>
            <groupName>tremolo </groupName>
            <backgroundColor>0x3a3a3aff</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>2</style>
            </font>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>7</x>
              <y>260</y>
              <label>direct</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>12</x>
              <y>28</y>
              <label>speed</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>tremolo trigger</objectName>
              <x>0</x>
              <y>0</y>
              <comment>active retriggering of ADSR</comment>
              <automationAllowed>true</automationAllowed>
              <label>trigger</label>
              <selected>false</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>89</x>
              <y>260</y>
              <label>ADSR</label>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
              <objectName></objectName>
              <x>77</x>
              <y>23</y>
              <comment>4 envelopes for amplitude</comment>
              <groupName>Group</groupName>
              <backgroundColor>0x00000033</backgroundColor>
              <borderColor>0x000000ff</borderColor>
              <labelTextColor>0xffffffff</labelTextColor>
              <titleEnabled>false</titleEnabled>
              <width>20</width>
              <height>20</height>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
              <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
                <objectName>tremolo attack</objectName>
                <x>10</x>
                <y>0</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>attack</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>tremolo sustain</objectName>
                <x>7</x>
                <y>90</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>sustain</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>tremolo release</objectName>
                <x>7</x>
                <y>134</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>release</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>tremolo decay</objectName>
                <x>10</x>
                <y>45</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.8857756424174704</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>decay</label>
                <labelEnabled>true</labelEnabled>
                <font>
                  <name>Roboto</name>
                  <size>12.0</size>
                  <style>0</style>
                </font>
              </bsbObject>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>mix tremolo</objectName>
              <x>41</x>
              <y>218</y>
              <comment>mix direct signal with Tremolo</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.35624996833081146</value>
              <knobWidth>50</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>mix</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>Roboto</name>
                <size>12.0</size>
                <style>0</style>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>tremolo envelope speed</objectName>
              <x>5</x>
              <y>40</y>
              <comment>speed of retriggering</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>60.0</maximum>
              <bdresolution>0.01</bdresolution>
              <value>5.81</value>
              <sliderHeight>145</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>gain Right</objectName>
            <x>58</x>
            <y>488</y>
            <comment>gain of Right channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>3.75</value>
            <sliderHeight>85</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>gain Left</objectName>
            <x>37</x>
            <y>487</y>
            <comment>gain Left channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>3.77</value>
            <sliderHeight>86</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>MS</objectName>
            <x>20</x>
            <y>422</y>
            <comment>ON/OFF MS stereo</comment>
            <automationAllowed>true</automationAllowed>
            <label>MS</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>autopanning if mono</objectName>
            <x>20</x>
            <y>440</y>
            <comment>if SF is mono, proovides some stereo panning</comment>
            <automationAllowed>true</automationAllowed>
            <label>autopan if  mono</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>343</y>
            <label>tuning</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>MSwidth</objectName>
            <x>57</x>
            <y>420</y>
            <comment>width of MS stereo</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.21</value>
            <sliderWidth>88</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>tuning fine</objectName>
            <x>39</x>
            <y>362</y>
            <comment>overall tuning</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>-0.5</minimum>
            <maximum>0.5</maximum>
            <bdresolution>0.0001</bdresolution>
            <value>0.0</value>
            <sliderWidth>70</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>SCORE_format_Sampler</objectName>
            <x>27</x>
            <y>605</y>
            <comment>pitch: expect frequency, midi notes or real values</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1167315750'>
                <name>P4 = frequency</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315751'>
                <name>P4 = MIDI pitch</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1167315752'>
                <name>P4 = real value</name>
                <value>2</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>52</x>
            <y>560</y>
            <label>volume</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>21</x>
            <y>367</y>
            <label>fine
</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>tuning coarse</objectName>
            <x>39</x>
            <y>340</y>
            <comment>overall tuning</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.01</minimum>
            <maximum>4.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>1.0</value>
            <sliderWidth>70</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>450</x>
          <y>440</y>
          <groupName>vibrato</groupName>
          <backgroundColor>0x282828ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>212</width>
          <height>100</height>
          <font>
            <name>Roboto</name>
            <size>12.0</size>
            <style>0</style>
          </font>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>vibrato wave</objectName>
            <x>50</x>
            <y>80</y>
            <comment>sine, triangle, square x 2, saw up, saw down </comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>1</bdresolution>
            <value>0.0</value>
            <sliderWidth>150</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>83</x>
            <y>96</y>
            <label>1</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>vibrato fade in</objectName>
            <x>10</x>
            <y>55</y>
            <comment>vibrato sets in slowly and is at full at the end of the note event</comment>
            <automationAllowed>true</automationAllowed>
            <label>fade in</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>159</x>
            <y>96</y>
            <label>4</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>vibrato depth</objectName>
            <x>102</x>
            <y>8</y>
            <comment>depth of the vibrato</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>0.15</maximum>
            <value>0.15</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>depth</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>133</x>
            <y>96</y>
            <label>3</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>VibratoON</objectName>
            <x>10</x>
            <y>10</y>
            <comment>switch for Vibrato ON or OFF</comment>
            <automationAllowed>true</automationAllowed>
            <label>vibrato</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>185</x>
            <y>96</y>
            <label>5</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>17</x>
            <y>85</y>
            <label>waves</label>
            <font>
              <name>Roboto</name>
              <size>12.0</size>
              <style>0</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>57</x>
            <y>96</y>
            <label>0</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>vibrato speed</objectName>
            <x>152</x>
            <y>8</y>
            <comment>frequency rate of vibrato</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>20.0</maximum>
            <value>2.4924540116263905</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>speed</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>107</x>
            <y>96</y>
            <label>2</label>
            <font>
              <name>Roboto</name>
              <size>14.0</size>
              <style>1</style>
            </font>
          </bsbObject>
        </bsbObject>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='1167315762' name='sample length' label='' min='0.0' max='100.0' bdresolution='0.001' automationEnabled='false' value='7.26'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='7.26'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315764' name='show sample length' 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='1167315766' name='onset' 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='1167315768' name='transient lenght' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.213'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.213'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315770' name='transientmix' label='' min='0.0' max='1.0' bdresolution='0.05' automationEnabled='false' value='0.55'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.05' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.55'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315772' name='sample latency' 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='1167315774' name='sample pregain' label='' min='0.0' max='2.0' bdresolution='0.1' automationEnabled='false' value='0.6'>
      <line name='' version='2' max='2.0' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.6'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315776' name='sample timescaling' label='' min='-10.0' max='10.0' bdresolution='0' automationEnabled='false' value='0.34999942779541016'>
      <line name='' version='2' max='10.0' min='-10.0' bdresolution='0' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.34999942779541016'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315778' name='sample offset' label='' min='0.0' max='100.0' bdresolution='0.001' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315780' name='sample wrap' 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='1167315782' name='envelope amplitude ON' 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='1167315784' name='amplitude exponential switch' 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='1167315786' name='amplitude jitter max' label='' min='0.0' max='40.0' bdresolution='-1' automationEnabled='false' value='3.9344994736367256'>
      <line name='' version='2' max='40.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.9344994736367256'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315788' name='amplitude jitter depth' label='' min='0.0' max='3.0' bdresolution='-1' automationEnabled='false' value='0.35670092630744854'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.35670092630744854'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315790' name='envelope amplitude rate' label='' min='1.0' max='20.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='20.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315792' name='amplitude jitter min' label='' min='0.0' max='38.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='38.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315794' name='ADSR ON' 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='1167315796' name='ADSR decay' 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='1167315798' name='ADSR sustain' 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='1167315800' name='ADSR release' 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='1167315802' name='ADSR attack' label='' min='0.0' max='3.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315804' name='pitch jitter depth' label='' min='0.0' max='0.3' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='0.3' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315806' name='envelope pitch bend ON' 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='1167315808' name='pitchbend depth' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.12'>
      <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.12'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315810' name='pitch jitter min' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315812' name='pitch jitter max' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='5.0'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='5.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315814' name='envelope pitch rate' label='' min='1.0' max='20.0' bdresolution='-1' automationEnabled='false' value='8.455636634346682'>
      <line name='' version='2' max='20.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='8.455636634346682'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315816' name='filter envelopes' label='' min='0.0' max='3.0' bdresolution='1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315818' name='filter bandpass gain' label='' min='0.0' max='0.5' bdresolution='0.1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='0.5' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315820' name='filter resonance' label='' min='0.5' max='25.0' bdresolution='-1' automationEnabled='false' value='2.4090156355342707'>
      <line name='' version='2' max='25.0' min='0.5' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.4090156355342707'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315822' name='filter lowpass gain' label='' min='0.0' max='2.5' bdresolution='0.1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='2.5' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315824' name='filter frequency cutoff' label='' min='4.35' max='14.3' bdresolution='-1' automationEnabled='false' value='9.686463988711413'>
      <line name='' version='2' max='14.3' min='4.35' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='9.686463988711413'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315826' name='filter highpass gain' label='' min='0.0' max='0.5' bdresolution='0.1' automationEnabled='false' value='0.5'>
      <line name='' version='2' max='0.5' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.5'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315828' name='filter total depth' 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='1167315830' name='filterON' 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='1167315832' name='output filters' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315834' name='filter follower' 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>
    <parameter uniqueId='1167315836' name='filter exponential switch' 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='1167315838' name='filter sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.7019409394555494'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.7019409394555494'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315840' name='filter decay' 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='1167315842' name='filter attack' label='' min='0.0' max='3.0' bdresolution='-1' automationEnabled='false' value='3.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315844' name='rate filter envelope' label='' min='1.0' max='30.0' bdresolution='-1' automationEnabled='false' value='10.946494472975278'>
      <line name='' version='2' max='30.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='10.946494472975278'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315846' name='filter envelope depth' label='' min='0.0' max='1.0' bdresolution='0.05' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.05' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315848' name='filter release' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.6429052975811664'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.6429052975811664'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315850' name='filter ADS depth' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315852' name='tremolo trigger' 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='1167315854' name='tremolo attack' 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='1167315856' name='tremolo sustain' 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='1167315858' name='tremolo release' 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='1167315860' name='tremolo decay' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.8857756424174704'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.8857756424174704'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315862' name='mix tremolo' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.35624996833081146'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.35624996833081146'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315864' name='tremolo envelope speed' label='' min='0.0' max='60.0' bdresolution='0.01' automationEnabled='false' value='5.81'>
      <line name='' version='2' max='60.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='5.81'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315866' name='gain Right' label='' min='0.0' max='5.0' bdresolution='0.01' automationEnabled='false' value='3.75'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.75'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315868' name='gain Left' label='' min='0.0' max='5.0' bdresolution='0.01' automationEnabled='false' value='3.77'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.77'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315870' name='MS' 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='1167315872' name='autopanning if mono' 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='1167315874' name='MSwidth' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.21'>
      <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.21'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315876' name='tuning fine' label='' min='-0.5' max='0.5' bdresolution='0.0001' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='0.5' min='-0.5' bdresolution='0.0001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315878' name='SCORE_format_Sampler' 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='1167315880' name='tuning coarse' label='' min='0.01' max='4.0' bdresolution='0.01' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='4.0' min='0.01' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315882' name='vibrato wave' 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='1167315884' name='vibrato fade in' 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='1167315886' name='vibrato depth' label='' min='0.0' max='0.15' bdresolution='-1' automationEnabled='false' value='0.15'>
      <line name='' version='2' max='0.15' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.15'/>
      </line>
    </parameter>
    <parameter uniqueId='1167315888' name='VibratoON' 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='1167315890' name='vibrato speed' label='' min='0.0' max='20.0' bdresolution='-1' automationEnabled='false' value='2.4924540116263905'>
      <line name='' version='2' max='20.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.4924540116263905'/>
      </line>
    </parameter>
  </parameterList>
  <presetGroup name='Presets'/>
  <opcodeList>
    <udo>
      <opcodeName>sampleONCEstereo+</opcodeName>
      <outTypes>iiii</outTypes>
      <inTypes>Sii</inTypes>
      <codeBody>Sfile, ioffset, inewlen xin

ilen    filelen Sfile                                                           ; find length
isamps  =  ilen * sr                                                            ; Total number of samples
isamps  *= inewlen                                                              ; new length
ioffset *= ilen                                                                 ; produce offset 

itableL	chnget	Sfile
itableR	chnget	Sfile
if (itableL == 0) then
    itableL   ftgen 0, 0, isamps, 1, Sfile, ioffset, 0, 1
    itableR   ftgen 0, 0, isamps, 1, Sfile, ioffset, 0, 2
	chnset	itableL, Sfile
	chnset	itableR, Sfile
endif

    xout    itableL, itableR, ilen, ioffset</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>sampleONCE+</opcodeName>
      <outTypes>iii</outTypes>
      <inTypes>Sii</inTypes>
      <codeBody>Sfile, ioffset, inewlen xin

ilen    filelen Sfile                                                           ; find length
isamps  =  ilen * sr                                                            ; Total number of samples
isamps  *= inewlen                                                              ; new length
ioffset *= ilen                                                                 ; produce offset

itable	chnget	Sfile                                                           ; get file in 
if (itable == 0) then
    itable   ftgen 0, 0, isamps, 1, Sfile, ioffset, 0, 0
	chnset	itable, Sfile
endif

    xout    itable, ilen, ioffset</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_suffixSOUND</opcodeName>
      <outTypes>Si</outTypes>
      <inTypes>So</inTypes>
      <codeBody>  ;returns the suffix of a filename or path, optional in lower case 
Spath, ilow xin
ipos      strrindex Spath, &quot;.&quot;
Suf       strsub    Spath, ipos+1
 if ilow != 0 then
Suf       strlower  Suf 
 endif

iok1    strcmp     &quot;wav&quot;, Suf                                                   ; specify wanted file extensions
iok2    strcmp     &quot;flac&quot;, Suf
iok3    strcmp     &quot;ogg&quot;, Suf
iok4    strcmp     &quot;mp3&quot;, Suf
iok5    strcmp     &quot;aif&quot;, Suf
iok6    strcmp     &quot;aiff&quot;, Suf

if (iok1 == 0) || (iok2 == 0) || (iok3 == 0) ||(iok4 == 0) || (iok5 == 0) ||(iok6 == 0) then
    iok = 0                                                                     ; check OK
else
    iok = 1                                                                     ; not OK
endif
          xout      Suf, iok
</codeBody>
      <comments>/****************************************************************************
Suf StrSuf Spath [,ilow]
Returns the suffix of a filename or path, optional in lower case 

Returns the suffix (extension) of a filename or a full path, optional in lower case.
written by joachim heintz

Spath - full pathname (or filename) as string
ilow - return ensuring lower case (1) or return as in Spath (0 = default)
****************************************************************************/</comments>
    </udo>
    <udo>
      <opcodeName>adsr140_calc_coef</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>kk</inTypes>
      <codeBody>  
  knum_samps, kratio xin
  xout exp( -log((1.0 + kratio) / kratio) / knum_samps)
    
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>adsr140</opcodeName>
      <outTypes>a</outTypes>
      <inTypes>aakkkk</inTypes>
      <codeBody>agate, aretrig, kattack, kdecay, ksustain, krelease xin
kstate init 0  ; 0 = attack, 1 = decay, 2 = sustain
klasttrig init -1
kval init 0.0
asig init 0
kindx = 0
kattack_base init 0
kdecay_base init 0
krelease_base init 0
kattack_samps init 0
kdecay_samps init 0
krelease_samps init 0
kattack_coef init 0
kdecay_coef init 0
ksustain_coef init 0
klast_attack init -1
klast_decay init -1
klast_release init -1
if (klast_attack != kattack) then
  klast_attack = kattack
  if(kattack &gt; 0) then
    kattack_samps = kattack * sr
    kattack_coef = adsr140_calc_coef(kattack_samps, 0.3)
    kattack_base = (1.0 + 0.3) * (1 - kattack_coef)
  else 
    kattack_samps = 0 
    kattack_coef = 0 
    kattack_base = 0 
  endif
endif
if (klast_decay != kdecay) then
  klast_decay = kdecay
  kdecay_samps = kdecay * sr
  kdecay_coef = adsr140_calc_coef(kdecay_samps, 0.0001)
  kdecay_base = (ksustain - 0.0001) * (1.0 - kdecay_coef)
endif
if (klast_release != krelease) then
  klast_release = krelease
  krelease_samps = krelease * sr
  krelease_coef = adsr140_calc_coef(krelease_samps, 0.0001)
  krelease_base =  -0.0001 * (1.0 - krelease_coef)
endif
while (kindx &lt; ksmps) do
  if (agate[kindx] &gt; 0) then
    kretrig = aretrig[kindx]
    if (kretrig &gt; 0 &amp;&amp; klasttrig &lt;= 0) then
      kstate = 0
    endif
    klasttrig = kretrig
    if (kstate == 0) then
      if(kattack &lt;= 0) then
        kval = 1.0
        kstate = 1
      else
        kval = kattack_base + (kval * kattack_coef)
        if(kval &gt;= 1.0) then
          kval = 1.0
          kstate = 1
        endif
        asig[kindx] = kval
      endif
    elseif (kstate == 1) then
      kval = kdecay_base + (kval * kdecay_coef)
;kval    *= 1.00005
      if(kval &lt;= ksustain) then
        kval = ksustain
        kstate = 2
      endif
      asig[kindx] = kval 
    else
      asig[kindx] = ksustain
    endif
  else ; in a release state
    kstate = 0
    if (kval == 0.0) then
      asig[kindx] = 0
    else 
    ; releasing
      kval = krelease_base + (kval * krelease_coef)
    if(kval &lt;= 0.0) then
      kval = 0.0
    endif
    asig[kindx] = kval  
    endif
  endif
  kindx += 1
od
xout asig
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_SCORE_format_Sampler</opcodeName>
      <outTypes>ii</outTypes>
      <inTypes>iii</inTypes>
      <codeBody>iscore, ipitch, iamp  xin

if (iscore == 0) then                                                           ; frequency mode
    ipitch  *=  .0038222
elseif (iscore == 1) then     
    ipitch = semitone(ipitch - 48)
else
    ;empty
endif

xout ipitch, iamp</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_Vibrato_noJitter</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>kkkk</inTypes>
      <codeBody>kOnVibrato, kdepth, kspeed, kwave xin

if kOnVibrato == 1 then                                                         ; if switch = ON, add vibrato to sall voices

    if(changed2(kwave)==1) then                                                 ; check if LFO type has changed
        reinit	VIBRATOreinit
    endif

    VIBRATOreinit:
    itype   =   i(kwave)
    kvibrato  lfo kdepth, kspeed, itype                                         ; LFO 0-5
    rireturn

else
        kvibrato = 0                                                            ; if switch = OFF, there is no vibrato
endif

        xout kvibrato
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>lfo3</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>kk</inTypes>
      <codeBody>kcps, ktype xin

iSineTable	chnget	&quot;lfo2_sine&quot;

if (iSineTable == 0) then
	iSineTable	ftgen 	0, 0, 65536, 10, 1 ; sine wave
	chnset	iSineTable, &quot;lfo2_sine&quot;
endif

kout init 0

if (ktype == 0) then ;SINE
	kout 	oscil3 1, kcps, iSineTable

elseif (ktype == 1) then ;TRIANGLE
	aout	vco2 1, kcps, 12
	kout downsamp aout

elseif (ktype == 2) then ;SQUARE (BI-POLAR)
	aout	vco2 1, kcps, 10
	kout downsamp aout

elseif (ktype == 3) then ;SQUARE (UNI-POLAR)
	aout	vco2 1, kcps, 10
	kout downsamp aout
	kout = (kout + 1) / 2

elseif (ktype == 4) then ;SAW TOOTH (UP)
	aout	vco2 1, kcps, 0
	kout downsamp aout


elseif (ktype == 5) then ;SAW TOOTH (DOWN)
	aout	vco2 1, kcps, 0
	kout downsamp aout
	kout = kout * -1

endif

xout kout</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_Tremolo_adsr140_STEREO</opcodeName>
      <outTypes>aa</outTypes>
      <inTypes>kaakkkkkk</inTypes>
      <codeBody>kon, ain1, ain2, katt, kdec, ksus, krel, kspeed, kmix xin        ; tremolo ON, in1, in2, attack, decay, sustain, release, speed, mix effect 

if (kon == 1) then                                                
    if (kspeed &gt; 0) then
        agate = lfo(1, kspeed)
        aretrig init 1
        aadsr adsr140 agate, aretrig, katt, kdec, ksus, krel    ; retriggering envelope 1
        aadsr *= 1.2
    else
        aretrig init 1
        agate = linseg:a(1, p3 - i(krel), 1, .001, 0, i(krel), 0)
        aadsr adsr140 agate, aretrig, katt, kdec, ksus, krel    ; envelope 2
    endif
else                                                                            ; no tremolo at all
    aadsr    =   1
endif

aresL  =  ain1 * aadsr                                                          ; impose tremolo on incoming audio
aresR  =  ain2 * aadsr 
aoutL    ntrpol  ain1, aresL, kmix                                              ; mix incoming audio with treated audio
aoutR    ntrpol  ain2, aresR, kmix

xout    aoutL, aoutR</codeBody>
      <comments>This Module takes in a stereo signal, outputs a stereo signal with tremolo and/or mixed with the original signal.
Needs other UDOs: adsr140_calc_coef and adsr140 (in that order)

</comments>
    </udo>
  </opcodeList>
</instrument>