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

Cycloop can be positioned in between the sampler and the granulator, as it has some aspects of both of them. Cycloop can be seen as an effect, as transformation is done on the signal.
On the other hand, the direct signal can be mixed in and together they can sound as one instrument.
The instrument takes in the sample and loops it.
By retriggering the overlaps and other features like pitch and reading forward/backwards, interesting and evolving textures can be created.
The number of overlaps gives the sound an echoic quality that reminds of the granulators.

Attention: by activating the filter, also the filter envelope drawings become available.


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.


SCORE EXAMPLE:

option 1, real values:
            frequency   amplitude     
i1  0   2   261.625565  1.0    
   
option 2, Midi pitch:
            pitch   amplitude    
i1  0   3   60      	1.0
 

---

version 1.2, October 2020
- big filter changes
- added BSB information comments
- changed P4 freq/midi pitch

version 1.1, September 2020
- changes: filter
- added mix direct/instr

version 1.0, June 2020
- initial version</comment>
  <globalOrc/>
  <globalSco/>
  <instrumentText>iHanning    ftgenonce 0, 0, 8192, 20, 2, 1                                      ; grain window

ipitch, iamp k_SCORE_format_Sampler i(&lt;SCORE_format_Sampler&gt;), p4, p5

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

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     

kenvamp +=    kjitamp                                                           ; jitter     

;===========================pitch===============================================

if (&lt;pitchON&gt; == 0) then
    &lt;sample pitch&gt;  =   1
endif

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
    kjitpitch jitter &lt;envelope pitch jitter depth&gt;, &lt;envelope pitch jitter min&gt;, &lt;envelope pitch jitter max&gt; ; create some pitch jitter     
    kenvpitchbend  +=  kjitpitch
else 
    kenvpitchbend  =   1
endif  

;========================samples================================================
ichn, iSampleLEFT, iSampleRIGHT     sampleONCE_stereo   &lt;file&gt;

kbegin_loop =   &lt;sample loop begin&gt; * ichn                                      ; convert length of sample to range 0-1       
kend_loop   =   &lt;sample loop end&gt; * ichn 
istart_sample   =   i(&lt;sample start playback&gt;) * ichn

if  changed2(&lt;overlaps&gt;, &lt;sample start playback&gt;) == 1 then                     ; re-init grain overlaps CAN CAUSE CRASHES!!!!!!	
    reinit	STARTSYNCLOOP		
endif		

STARTSYNCLOOP:                                                                  ; produce synchronous grains
iolaps  =   i(&lt;overlaps&gt;)
kout    logcurve (&lt;overlaps&gt;*.01), 20                                           ; attempt to minimize amp explosions when overlaps changes
kfrequency  = iolaps/&lt;grain size&gt;
asigFL	syncloop &lt;amplitude scaling&gt; * kenvamp * iamp, kfrequency, ipitch * &lt;sample pitch&gt; * kenvpitchbend, &lt;grain size&gt;, &lt;grain rate&gt;, kbegin_loop, kend_loop, iSampleLEFT,  iHanning, iolaps, istart_sample
asigFR	syncloop &lt;amplitude scaling&gt; * kenvamp * iamp, kfrequency, ipitch * &lt;sample pitch&gt; * kenvpitchbend, &lt;grain size&gt;, &lt;grain rate&gt;, kbegin_loop, kend_loop, iSampleRIGHT, iHanning, iolaps, istart_sample
if ichn == 1 then                                                               ; direct signal
    asigLd  diskin2    &lt;file&gt;,  abs(ipitch * &lt;sample pitch&gt; * kenvpitchbend), istart_sample, 1
    asigRd  =          asigLd
else
    asigLd, asigRd    diskin2    &lt;file&gt;,  abs(ipitch * &lt;sample pitch&gt; * kenvpitchbend), istart_sample, 1
endif
rireturn
kvoloverlap =   (1/kout)


asigFL  ntrpol  asigFL*5, asigLd * iamp * 7 * kenvamp, &lt;mix&gt;                    ; mix direct and effected signal
asigFR  ntrpol  asigFR*5, asigRd * iamp * 7 * kenvamp, &lt;mix&gt;

;=========================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 = 1
        acutenv adsr140 agate, aretrig, &lt;filter ads attack&gt;, &lt;filter ads decay&gt;, &lt;filter ads sustain&gt;, 0
        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 = 1
        afilterads adsr140 agate, aretrig, &lt;filter ads attack&gt;, &lt;filter ads decay&gt;, &lt;filter ads sustain&gt;, 0
        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;

    asigL   =   (ahpL + alpL + abpL)                                            ; mix all filter gains
    asigR   =   (ahpR + alpR + abpR)

else
        asigL    =   asigFL
        asigR    =   asigFR
endif

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

if (&lt;ADSRon&gt; == 1) then
    if &lt;ADSR speed&gt; &gt; 0 then
        agate = lfo(1, &lt;ADSR speed&gt;)
        aretrig init 1
        aenv adsr140 agate, aretrig, &lt;ADSR attack&gt;, &lt;ADSR decay&gt;, &lt;ADSR sustain&gt;, &lt;ADSR release&gt;    ; envelope 1 or
    else
        aretrig init 1
        agate = linseg:a(1, p3 - i(&lt;ADSR release&gt;), 1, .001, 0, i(&lt;ADSR release&gt;), 0)
        aenv adsr140 agate, aretrig, &lt;ADSR attack&gt;, &lt;ADSR decay&gt;, &lt;ADSR sustain&gt;, &lt;ADSR release&gt;    ; envelope 2
    endif
else                                                                            ; no envelope
    aenv    =   .8
endif

	blueMixerOut asigL * aenv * &lt;output Left&gt; * kvoloverlap, asigR * aenv * &lt;output Right&gt; * kvoloverlap
</instrumentText>
  <alwaysOnInstrumentText></alwaysOnInstrumentText>
  <graphicInterface editEnabled='false'>
    <gridSettings>
      <width>2</width>
      <height>5</height>
      <gridStyle>DOT</gridStyle>
      <snapGridEnabled>true</snapGridEnabled>
    </gridSettings>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
      <objectName></objectName>
      <x>0</x>
      <y>0</y>
      <groupName>Group</groupName>
      <backgroundColor>0x00000033</backgroundColor>
      <borderColor>0x000000ff</borderColor>
      <labelTextColor>0xffffffff</labelTextColor>
      <titleEnabled>true</titleEnabled>
      <width>20</width>
      <height>20</height>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>0</x>
        <y>0</y>
        <groupName>l---------------------------- C y c l o o p ----------------------------l</groupName>
        <backgroundColor>0x4d4d4dff</backgroundColor>
        <borderColor>0x4d1a4dff</borderColor>
        <labelTextColor>0xffffffff</labelTextColor>
        <titleEnabled>true</titleEnabled>
        <width>20</width>
        <height>20</height>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>12</x>
          <y>295</y>
          <groupName>envelopes per note</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>20</width>
          <height>190</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLineObject'>
            <objectName>envelope</objectName>
            <x>10</x>
            <y>10</y>
            <comment>for each, it changes values over the note event</comment>
            <canvasWidth>440</canvasWidth>
            <canvasHeight>150</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='-52378' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.0' y='1.0'/>
                <linePoint x='0.45' y='1.0'/>
                <linePoint x='0.7613636363636364' y='1.0'/>
                <linePoint x='0.8795454545454545' y='1.0'/>
                <linePoint x='1.0' y='0.0'/>
              </line>
              <line name='pitch bend envelope' version='2' max='2.0' min='0.5' bdresolution='-1' color='-13369345' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='1.0'/>
                <linePoint x='0.31136363636363634' y='1.29'/>
                <linePoint x='1.0' y='1.0'/>
              </line>
              <line name='filter envelope' version='2' max='1.0' min='0.0' bdresolution='-1' color='-23296' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.3' y='0.1466666666666666'/>
                <linePoint x='0.5886363636363636' y='0.78'/>
                <linePoint x='1.0' y='0.5'/>
              </line>
            </lines>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>475</x>
          <y>390</y>
          <groupName>pitch</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>20</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>70</y>
            <label>pitch envelope</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope pitch rate</objectName>
            <x>35</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>20.0</maximum>
            <value>1.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>rate</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope pitch jitter depth</objectName>
            <x>85</x>
            <y>5</y>
            <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>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope pitch jitter min</objectName>
            <x>125</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>69.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>min</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope pitch jitter max</objectName>
            <x>165</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>100.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>max</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>envelope pitch bend ON</objectName>
            <x>10</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>172</y>
          <groupName>grain properties</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>48</x>
            <y>39</y>
            <label>rate</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>overlaps</objectName>
            <x>70</x>
            <y>65</y>
            <comment>maximum number of overlaps</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>100.0</maximum>
            <bdresolution>1</bdresolution>
            <value>74.0</value>
            <sliderWidth>208</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>amplitude scaling</objectName>
            <x>380</x>
            <y>65</y>
            <comment>amount of amplitude scaling</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.84</value>
            <sliderWidth>235</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>20</x>
            <y>71</y>
            <label>overlaps</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>352</x>
            <y>71</y>
            <label>amp</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>grain rate</objectName>
            <x>72</x>
            <y>33</y>
            <comment>readout pointer rate, in grains. The value of 1 will advance the reading pointer 1 grain ahead in the source table. Larger values will time-compress and smaller values will time-expand the source signal. Negative values will cause the pointer to run backwards and zero will freeze it.</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>-5.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>-1.73</value>
            <sliderWidth>543</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>grain size</objectName>
            <x>72</x>
            <y>9</y>
            <comment>grain size in seconds</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.001</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.09</value>
            <sliderWidth>543</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>48</x>
            <y>15</y>
            <label>size</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>485</y>
          <groupName>filters</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>832</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>filter bandpass gain</objectName>
            <x>212</x>
            <y>20</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.BSBCheckBox'>
            <objectName>filterON</objectName>
            <x>11</x>
            <y>8</y>
            <comment>filters ON or OFF</comment>
            <automationAllowed>true</automationAllowed>
            <label>filters</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>filter frequency cutoff</objectName>
            <x>254</x>
            <y>8</y>
            <comment>cutoff frequency of filters</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>4.35</minimum>
            <maximum>14.3</maximum>
            <value>10.718000000000004</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>cutoff</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>filter resonance</objectName>
            <x>298</x>
            <y>8</y>
            <comment>gain of feedback of filters</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.5</minimum>
            <maximum>25.0</maximum>
            <value>10.055000000000003</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>resonance</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>415</x>
            <y>4</y>
            <groupName>envelopes</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>false</titleEnabled>
            <width>20</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter ads attack</objectName>
              <x>7</x>
              <y>36</y>
              <comment>attack 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>attack</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter ads decay</objectName>
              <x>49</x>
              <y>36</y>
              <comment>decay portion of envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.15000000000000002</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>decay</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>132</x>
              <y>8</y>
              <label>depth</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter envelope depth</objectName>
              <x>359</x>
              <y>24</y>
              <comment>gain of filter envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.5</maximum>
              <bdresolution>0.05</bdresolution>
              <value>1.5</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>356</x>
              <y>10</y>
              <label>depth</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>280</x>
              <y>10</y>
              <label>GRAPH</label>
              <font>
                <name>System Bold</name>
                <size>18.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>340</x>
              <y>54</y>
              <label>exp</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>rate filter envelope</objectName>
              <x>300</x>
              <y>36</y>
              <comment>frequency rate of filter envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>1.0</minimum>
              <maximum>30.0</maximum>
              <value>1.0</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>rate</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>7</x>
              <y>8</y>
              <label>A-D-S</label>
              <font>
                <name>System Bold</name>
                <size>18.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>filter ads sustain</objectName>
              <x>87</x>
              <y>36</y>
              <comment>sustain portion of envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.5700000000000001</value>
              <knobWidth>31</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
              <label>sustain</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
              <objectName>filter envelopes</objectName>
              <x>171</x>
              <y>50</y>
              <comment>bypass envelopes, or choose one of them or both of them</comment>
              <automationAllowed>true</automationAllowed>
              <selectedIndex>2</selectedIndex>
              <fontSize>12</fontSize>
              <randomizable>true</randomizable>
              <bsbDropdownItemList>
                <bsbDropdownItem uniqueId='1769564989'>
                  <name>disabled</name>
                  <value>0</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1769564990'>
                  <name>AttDecSus</name>
                  <value>1</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1769564991'>
                  <name>Graphic</name>
                  <value>2</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1769564992'>
                  <name>ADS+Graphic</name>
                  <value>3</value>
                </bsbDropdownItem>
              </bsbDropdownItemList>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>filter exponential switch</objectName>
              <x>344</x>
              <y>38</y>
              <comment>treat anvelope ar exponential</comment>
              <automationAllowed>true</automationAllowed>
              <label/>
              <selected>true</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>filter ads depth</objectName>
              <x>137</x>
              <y>22</y>
              <comment>gain of ADS envelope</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.5</maximum>
              <bdresolution>0.01</bdresolution>
              <value>1.5</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>filter lowpass gain</objectName>
            <x>148</x>
            <y>20</y>
            <comment>gain of lowpass filter</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>2.5</maximum>
            <bdresolution>0.1</bdresolution>
            <value>2.5</value>
            <sliderHeight>56</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>filter follower</objectName>
            <x>11</x>
            <y>52</y>
            <comment>open and close filter depending on amplitude or frequency</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>1</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1769564984'>
                <name>---</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1769564985'>
                <name>amp follow</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1769564986'>
                <name>amp follow invert</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1769564987'>
                <name>key follow</name>
                <value>3</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1769564988'>
                <name>key follow invert</name>
                <value>4</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>180</x>
            <y>8</y>
            <label>high</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>filter highpass gain</objectName>
            <x>180</x>
            <y>20</y>
            <comment>gain of highpass 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.BSBLabel' version='2'>
            <objectName></objectName>
            <x>210</x>
            <y>8</y>
            <label>bndP</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>153</x>
            <y>8</y>
            <label>low</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>filter total depth</objectName>
            <x>363</x>
            <y>8</y>
            <comment>gain of filters</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.33999999999999997</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>depth</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>475</x>
          <y>295</y>
          <groupName>amplitude</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>209</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope amplitude rate</objectName>
            <x>35</x>
            <y>5</y>
            <comment>frequency rate of the number of envelopes over the note event</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>20.0</maximum>
            <value>1.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>rate</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>amplitude exponential switch</objectName>
            <x>10</x>
            <y>10</y>
            <comment>convert envelope to exponential scale</comment>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>amplitude jitter min</objectName>
            <x>125</x>
            <y>5</y>
            <comment>limits minimumfrequencies for jitter-    </comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>38.0</maximum>
            <value>27.739999999999995</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>min</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>amplitude jitter max</objectName>
            <x>165</x>
            <y>5</y>
            <comment>limits maximum frequencies for jitter-    </comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>40.0</maximum>
            <value>40.0</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>max</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>25</y>
            <label>exp</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>amplitude jitter depth</objectName>
            <x>85</x>
            <y>5</y>
            <comment>amount of jitter </comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.6200000000000001</value>
            <knobWidth>35</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>jitter</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>70</y>
            <label>amplitude envelope</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>685</x>
          <y>10</y>
          <groupName>Global</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>456</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>ADSRon</objectName>
            <x>10</x>
            <y>10</y>
            <comment>set ADSR trigger to on or off</comment>
            <automationAllowed>true</automationAllowed>
            <label>trigger</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>SCORE_format_Sampler</objectName>
            <x>18</x>
            <y>325</y>
            <comment>choose for pitch between midi pitch/real values</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1769564982'>
                <name>P4 = frequency</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1769564983'>
                <name>P4 = MIDI pitch</name>
                <value>1</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>8</x>
            <y>35</y>
            <label>ADSR speed</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>65</x>
            <y>355</y>
            <label>mix</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>84</x>
            <y>5</y>
            <comment>ADSR settings</comment>
            <groupName>ADSR</groupName>
            <backgroundColor>0x00000033</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>false</titleEnabled>
            <width>20</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>ADSR decay</objectName>
              <x>10</x>
              <y>64</y>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.84</value>
              <knobWidth>33</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>decay</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>ADSR sustain</objectName>
              <x>10</x>
              <y>130</y>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.26</value>
              <knobWidth>33</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>sustain</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>ADSR attack</objectName>
              <x>10</x>
              <y>0</y>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.32</value>
              <knobWidth>33</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>attack</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>ADSR release</objectName>
              <x>10</x>
              <y>192</y>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.74</value>
              <knobWidth>33</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>release</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>output Left</objectName>
            <x>35</x>
            <y>395</y>
            <comment>gain of Left channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>0.5</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.37</value>
            <sliderWidth>84</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>25</x>
            <y>400</y>
            <label>L</label>
            <font>
              <name>System Bold</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>mix</objectName>
            <x>35</x>
            <y>360</y>
            <comment>mix direct and effected signal</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.357</value>
            <sliderWidth>84</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>38</x>
            <y>310</y>
            <label>score format</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>ADSR speed</objectName>
            <x>15</x>
            <y>45</y>
            <comment>frequency of retriggering of ADSR</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>15.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.0</value>
            <sliderHeight>195</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>25</x>
            <y>415</y>
            <label>R</label>
            <font>
              <name>System Bold</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>output Right</objectName>
            <x>35</x>
            <y>410</y>
            <comment>gain of Right channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>0.5</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.38</value>
            <sliderWidth>84</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>10</y>
          <groupName>sample properties</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x1a1a1aff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>614</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>12</x>
            <y>49</y>
            <label>start pos.</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file</objectName>
            <x>72</x>
            <y>12</y>
            <comment>select the sample to use</comment>
            <fileName>/media/menno/datae/EigenWerk/verzameling_ideejen/samples/zaagtand.wav</fileName>
            <textFieldWidth>563</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>pitchON</objectName>
            <x>15</x>
            <y>110</y>
            <comment>pitch ON or OFF, when OFF pitch is pitch of sample</comment>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>38</x>
            <y>109</y>
            <label>pitch</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>8</x>
            <y>82</y>
            <label>loop</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>44</x>
            <y>88</y>
            <label>end</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample pitch</objectName>
            <x>70</x>
            <y>103</y>
            <comment>change pitch of sample</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>-2.0</minimum>
            <maximum>2.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>1.6760000000000002</value>
            <sliderWidth>545</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample loop end</objectName>
            <x>70</x>
            <y>79</y>
            <comment>set looppoints bend point</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.338</value>
            <sliderWidth>570</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample start playback</objectName>
            <x>70</x>
            <y>45</y>
            <comment>skip in sample</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.065</value>
            <sliderWidth>570</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>34</x>
            <y>68</y>
            <label>begin</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>36</x>
            <y>76</y>
            <label>__</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample loop begin</objectName>
            <x>70</x>
            <y>62</y>
            <comment>set looppoints begin point</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.162</value>
            <sliderWidth>570</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>50</x>
            <y>82</y>
            <label>l</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='1769564994' name='envelope pitch jitter max' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='100.0'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='100.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769564996' name='envelope 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='1769564998' name='envelope pitch bend 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='1769565000' name='envelope pitch 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='1769565002' name='envelope pitch jitter min' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='69.0'>
      <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='69.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565004' name='grain size' label='' min='0.001' max='3.0' bdresolution='0.001' automationEnabled='false' value='0.09'>
      <line name='' version='2' max='3.0' min='0.001' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.09'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565006' name='amplitude scaling' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='0.84'>
      <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.84'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565008' name='grain rate' label='' min='-5.0' max='5.0' bdresolution='0.001' automationEnabled='false' value='-1.73'>
      <line name='' version='2' max='5.0' min='-5.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='-1.73'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565010' name='overlaps' label='' min='1.0' max='100.0' bdresolution='1' automationEnabled='false' value='74.0'>
      <line name='' version='2' max='100.0' min='1.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='74.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565012' name='filter frequency cutoff' label='' min='4.35' max='14.3' bdresolution='-1' automationEnabled='false' value='10.718000000000004'>
      <line name='' version='2' max='14.3' min='4.35' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='10.718000000000004'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565014' name='filter lowpass gain' label='' min='0.0' max='2.5' bdresolution='0.1' automationEnabled='false' value='2.5'>
      <line name='' version='2' max='2.5' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.5'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565016' name='filter ads decay' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.15000000000000002'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.15000000000000002'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565018' name='filter envelope depth' label='' min='0.0' max='1.5' bdresolution='0.05' automationEnabled='false' value='1.5'>
      <line name='' version='2' max='1.5' min='0.0' bdresolution='0.05' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.5'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565020' name='filter ads attack' 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='1769565022' name='filter envelopes' label='' min='0.0' max='3.0' bdresolution='1' automationEnabled='false' value='2.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565024' 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='1769565026' name='filter ads depth' label='' min='0.0' max='1.5' bdresolution='0.01' automationEnabled='false' value='1.5'>
      <line name='' version='2' max='1.5' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.5'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565028' name='rate filter envelope' label='' min='1.0' max='30.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='30.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565030' name='filter ads sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.5700000000000001'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.5700000000000001'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565032' 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='1769565034' name='filter total depth' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.33999999999999997'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.33999999999999997'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565036' name='filter resonance' label='' min='0.5' max='25.0' bdresolution='-1' automationEnabled='false' value='10.055000000000003'>
      <line name='' version='2' max='25.0' min='0.5' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='10.055000000000003'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565038' name='filter highpass 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='1769565040' name='filter follower' label='' min='0.0' max='4.0' bdresolution='1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='4.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565042' name='filterON' 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='1769565044' name='sample loop end' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.338'>
      <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.338'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565046' name='sample loop begin' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.162'>
      <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.162'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565048' name='pitchON' 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='1769565050' name='sample pitch' label='' min='-2.0' max='2.0' bdresolution='0.001' automationEnabled='false' value='1.6760000000000002'>
      <line name='' version='2' max='2.0' min='-2.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.6760000000000002'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565052' name='sample start playback' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.065'>
      <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.065'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565054' name='mix' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.357'>
      <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.357'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565056' name='SCORE_format_Sampler' 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='1769565058' name='ADSR sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.26'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.26'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565060' name='ADSR decay' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.84'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.84'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565062' name='ADSR attack' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.32'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.32'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565064' name='ADSR release' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.74'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.74'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565066' name='ADSRon' 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='1769565068' name='output Right' label='' min='0.0' max='0.5' bdresolution='0.01' automationEnabled='false' value='0.38'>
      <line name='' version='2' max='0.5' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.38'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565070' name='output Left' label='' min='0.0' max='0.5' bdresolution='0.01' automationEnabled='false' value='0.37'>
      <line name='' version='2' max='0.5' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.37'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565072' name='ADSR speed' label='' min='0.0' max='15.0' bdresolution='0.01' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='15.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565074' name='amplitude jitter max' label='' min='0.0' max='40.0' bdresolution='-1' automationEnabled='false' value='40.0'>
      <line name='' version='2' max='40.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='40.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565076' 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='1769565078' name='amplitude jitter min' label='' min='0.0' max='38.0' bdresolution='-1' automationEnabled='false' value='27.739999999999995'>
      <line name='' version='2' max='38.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='27.739999999999995'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565080' name='amplitude jitter depth' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.6200000000000001'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.6200000000000001'/>
      </line>
    </parameter>
    <parameter uniqueId='1769565082' name='amplitude exponential switch' 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>
  </parameterList>
  <presetGroup name='Presets'/>
  <opcodeList>
    <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
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)
        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>sampleONCE_stereo</opcodeName>
      <outTypes>iii</outTypes>
      <inTypes>S</inTypes>
      <codeBody>Sfile   xin
itable	chnget	Sfile
ichn    filenchnls Sfile
if (itable == 0) then
    if (ichn == 2) then
    ;                                file   skip    format  channel    
        itable1   ftgen 0, 0, 0, 1,  Sfile,  0,      0,      1
        itable2   ftgen 0, 0, 0, 1,  Sfile,  0,      0,      2
    else
        itable1   ftgen 0, 0, 0, 1,  Sfile,  0,      0,      0
        itable2     =   itable1
    endif
endif
    chnset  itable, Sfile
    xout    ichn, itable1, itable2</codeBody>
      <comments>keeps the same samples from loading and reloading, but re-uses the same samples</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
else                                                                            ; MIDI pitch mode
    ipitch = semitone(ipitch - 48)
endif

xout ipitch, iamp</codeBody>
      <comments></comments>
    </udo>
  </opcodeList>
</instrument>