<soundObject type='blue.soundObject.Sound'>
  <subjectiveDuration>5.0</subjectiveDuration>
  <startTime>29.0</startTime>
  <name>Cycloop</name>
  <backgroundColor>-12566464</backgroundColor>
  <instrument type='blue.orchestra.BlueSynthBuilder' editEnabled='true'>
    <name>untitled</name>
    <comment></comment>
    <globalOrc/>
    <globalSco/>
    <instrumentText>iHanning    ftgenonce 0, 0, 8192, 20, 2, 1                                          ; grain window

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

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

kjitamp jitter &lt;envelope amplitude jitter depth&gt;, &lt;envelope amplitude jitter min&gt;, &lt;envelope amplitude jitter max&gt;    ; create some amplitude jitter     
kenvamp += kjitamp

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

if &lt;filter envelope ON&gt; == 0 then                                               ; switch for filter
    kfilterenv   =   &lt;filter frequency cutoff&gt;
    afilterenv  interp  kfilterenv
endif

kjitfilt jitter &lt;envelope filter jitter depth&gt;, &lt;envelope filter jitter min&gt;, &lt;envelope filter jitter max&gt; ; create some filter jitter     
kenvfilter += abs(kjitfilt)
afilterenv  interp  kenvfilter

;==============================pitch bend=======================================
if &lt;envelope pitch bend ON&gt; == 1 then                                              ; envelope pitchbend
kpitchbend  loopxseg     &lt;envelope pitch scale&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     
kpitchbend  +=  kjitpitch
else 
kpitchbend  =   1
endif  


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

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

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

STARTSYNC:                                                                      ; 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, kfrequency, &lt;sample pitch&gt; * kpitchbend, &lt;grain size&gt;, &lt;grain rate&gt;, kbegin_loop, kend_loop, iSampleLEFT,  iHanning, iolaps, istart_sample
asigFR	syncloop &lt;amplitude scaling&gt; * kenvamp, kfrequency, &lt;sample pitch&gt; * kpitchbend, &lt;grain size&gt;, &lt;grain rate&gt;, kbegin_loop, kend_loop, iSampleRIGHT, iHanning, iolaps, istart_sample
rireturn
kvoloverlap =   (1/kout)
;===============================================================================
if &lt;filterON&gt; == 1 then
        kQ = &lt;filter Q&gt;
        ahpL,alpL,abpL2,abrL statevar asigFL, afilterenv, kQ, 10
        ahpR,alpR,abpR,abrR statevar asigFR, afilterenv, kQ, 10
        abpL    dcblock abpL2
        klpgain =  &lt;filter lowpass gain&gt;
        khpgain =  1-&lt;filter highpass gain&gt;
        kbpgain =  &lt;filter bandpass gain&gt;
        kbrgain =  1-&lt;filter bandreject gain&gt;

        kfilterX    =   &lt;filterX&gt;                                               ; for use with XY controller
        kfilterY    =	&lt;filterY&gt;                                               ; set amplitude for the 4 filters

        klp	limit sqrt((1-kfilterX)*kfilterY), 0, 1
        khp	limit sqrt(kfilterX*kfilterY), 0, 1
        kbp	limit sqrt((1-kfilterY)*(1-kfilterX)), 0, 1
        kbr	limit sqrt((1-kfilterY)*kfilterX), 0, 1

        alpL *= klp * klpgain
        ahpL *= khp * khpgain
        abpL *= kbp * kbpgain
        abrL *= kbr * kbrgain

        alpR *= klp * klpgain
        ahpR *= khp * khpgain
        abpR *= kbp * kbpgain
        abrR *= kbr * kbrgain

        asigL   =   ahpL + alpL + abpL + abrL                                   ; mix all filter outputs
        asigR   =   ahpR + alpR + abpR + abrR
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 &quot;&lt;Subchannel&gt;&quot;, asigL * aenv * &lt;output Left&gt; * kvoloverlap, asigR * aenv * &lt;output Right&gt; * kvoloverlap</instrumentText>
    <alwaysOnInstrumentText></alwaysOnInstrumentText>
    <graphicInterface editEnabled='false'>
      <gridSettings>
        <width>5</width>
        <height>2</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>475</y>
          <groupName>expon</groupName>
          <backgroundColor>0x666600ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>105</width>
          <height>95</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>filter exponential switch</objectName>
            <x>10</x>
            <y>30</y>
            <automationAllowed>true</automationAllowed>
            <label>filter exp.</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>amplitude exponential switch</objectName>
            <x>10</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <label>amp exp.</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>102</x>
          <y>476</y>
          <groupName>Group</groupName>
          <backgroundColor>0x666600ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>20</width>
          <height>95</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>124</x>
            <y>61</y>
            <label>bandpass</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>filterON</objectName>
            <x>5</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <label>filters</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>239</x>
            <y>24</y>
            <label>highpass</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>239</x>
            <y>61</y>
            <label>bandreject</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBXYController' version='2'>
            <objectName>filter</objectName>
            <x>190</x>
            <y>19</y>
            <automationAllowed>true</automationAllowed>
            <width>40</width>
            <height>40</height>
            <xMin>0.0</xMin>
            <xMax>1.0</xMax>
            <yMin>0.0</yMin>
            <yMax>1.0</yMax>
            <xValue>0.0</xValue>
            <yValue>1.0</yValue>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>filter lowpass gain</objectName>
            <x>139</x>
            <y>6</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>1.0</value>
            <sliderWidth>50</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>filter frequency cutoff</objectName>
            <x>4</x>
            <y>46</y>
            <automationAllowed>true</automationAllowed>
            <minimum>20.0</minimum>
            <maximum>18000.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>2490.0</value>
            <sliderWidth>60</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>filter highpass gain</objectName>
            <x>229</x>
            <y>6</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>0.0</value>
            <sliderWidth>50</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>134</x>
            <y>26</y>
            <label>lowpass</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>filter bandpass gain</objectName>
            <x>140</x>
            <y>45</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>1.0</value>
            <sliderWidth>50</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>filter Q</objectName>
            <x>310</x>
            <y>12</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.1</minimum>
            <maximum>3.0</maximum>
            <value>2.1299999999999994</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>Quality</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>filter bandreject gain</objectName>
            <x>229</x>
            <y>46</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>0.0</value>
            <sliderWidth>50</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>2</x>
          <y>285</y>
          <groupName>envelopes per note</groupName>
          <backgroundColor>0x666600ff</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>
            <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.5340909090909091' y='0.2666666666666667'/>
                <linePoint x='1.0' y='1.0'/>
                <linePoint x='1.0' y='0.0'/>
              </line>
              <line name='pitch bend envelope' version='2' max='2.0' min='0.0' bdresolution='-1' color='-13369345' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='2.0'/>
                <linePoint x='0.1' y='0.6533333333333333'/>
                <linePoint x='0.23863636363636365' y='1.48'/>
                <linePoint x='0.4409090909090909' y='1.6400000000000001'/>
                <linePoint x='0.7340909090909091' y='1.6666666666666667'/>
                <linePoint x='0.8954545454545455' y='0.8533333333333333'/>
                <linePoint x='0.9840909090909091' y='0.4933333333333334'/>
                <linePoint x='1.0' y='2.0'/>
              </line>
              <line name='filter envelope' version='2' max='20000.0' min='10.0' bdresolution='-1' color='-23296' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='10005.0'/>
                <linePoint x='0.16136363636363638' y='11337.666666666666'/>
                <linePoint x='0.39545454545454545' y='1076.1333333333334'/>
                <linePoint x='0.7522727272727273' y='10.0'/>
                <linePoint x='0.8863636363636364' y='19333.666666666668'/>
                <linePoint x='1.0' y='10005.0'/>
              </line>
            </lines>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>0</x>
          <y>0</y>
          <groupName>sample properties</groupName>
          <backgroundColor>0x666600ff</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>50</x>
            <y>82</y>
            <label>l</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 loop begin</objectName>
            <x>70</x>
            <y>62</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</value>
            <sliderWidth>570</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file</objectName>
            <x>72</x>
            <y>12</y>
            <fileName>beats.wav</fileName>
            <textFieldWidth>563</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </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.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.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.BSBHSlider' version='2'>
            <objectName>sample loop end</objectName>
            <x>70</x>
            <y>79</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.2</value>
            <sliderWidth>570</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </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.BSBHSlider' version='2'>
            <objectName>sample pitch</objectName>
            <x>70</x>
            <y>103</y>
            <automationAllowed>true</automationAllowed>
            <minimum>-2.0</minimum>
            <maximum>2.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>1.0</value>
            <sliderWidth>545</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample start playback</objectName>
            <x>70</x>
            <y>45</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</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>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>465</x>
          <y>380</y>
          <groupName>filter</groupName>
          <backgroundColor>0x666600ff</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>envelope filter jitter max</objectName>
            <x>165</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>67.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.BSBKnob' version='2'>
            <objectName>envelope filter jitter min</objectName>
            <x>125</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>100.0</maximum>
            <value>28.000000000000014</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.BSBCheckBox'>
            <objectName>filter envelope ON</objectName>
            <x>10</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <label/>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope filter jitter depth</objectName>
            <x>85</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>10000.0</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 filter scale</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>scale</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>filter envelope</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>0</x>
          <y>162</y>
          <groupName>grain properties</groupName>
          <backgroundColor>0x666600ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>grain size</objectName>
            <x>72</x>
            <y>9</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.001</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.338</value>
            <sliderWidth>543</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </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.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 type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>grain rate</objectName>
            <x>72</x>
            <y>33</y>
            <automationAllowed>true</automationAllowed>
            <minimum>-5.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>-3.269</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>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>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>100.0</maximum>
            <bdresolution>1</bdresolution>
            <value>22.0</value>
            <sliderWidth>208</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.BSBHSlider' version='2'>
            <objectName>amplitude scaling</objectName>
            <x>380</x>
            <y>65</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>0.5</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.11</value>
            <sliderWidth>235</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>675</x>
          <y>0</y>
          <groupName>Global</groupName>
          <backgroundColor>0x666600ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>473</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>20</x>
            <y>180</y>
            <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 sustain</objectName>
              <x>10</x>
              <y>130</y>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.66</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.0</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.2</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 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>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>15</x>
            <y>500</y>
            <label>L</label>
            <font>
              <name>System Bold</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>ADSR speed</objectName>
            <x>25</x>
            <y>40</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>15.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.0</value>
            <sliderHeight>105</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>18</x>
            <y>30</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>15</x>
            <y>515</y>
            <label>R</label>
            <font>
              <name>System Bold</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>452</y>
            <label>SubChannnel</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>ADSRon</objectName>
            <x>20</x>
            <y>10</y>
            <automationAllowed>true</automationAllowed>
            <label>trigger</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
            <objectName>Subchannel</objectName>
            <x>15</x>
            <y>466</y>
            <value>SSO1</value>
            <textFieldWidth>70</textFieldWidth>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>output Right</objectName>
            <x>25</x>
            <y>510</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>1.95</value>
            <sliderWidth>60</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>output Left</objectName>
            <x>25</x>
            <y>495</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>1.88</value>
            <sliderWidth>60</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>465</x>
          <y>285</y>
          <groupName>amplitude</groupName>
          <backgroundColor>0x666600ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>209</width>
          <height>20</height>
          <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 type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>envelope amplitude jitter max</objectName>
            <x>165</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>20.0</maximum>
            <value>14.8</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.BSBKnob' version='2'>
            <objectName>envelope amplitude scale</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>scale</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 amplitude jitter min</objectName>
            <x>125</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>20.0</maximum>
            <value>8.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 amplitude jitter depth</objectName>
            <x>85</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>1.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>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>465</x>
          <y>475</y>
          <groupName>pitch</groupName>
          <backgroundColor>0x666600ff</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>envelope pitch jitter depth</objectName>
            <x>85</x>
            <y>5</y>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.45</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 scale</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>scale</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>false</selected>
            <randomizable>true</randomizable>
          </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>80.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.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>44.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.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>
      </bsbObject>
    </graphicInterface>
    <parameterList>
      <parameter uniqueId='368501253' name='sample pitch' label='' min='-2.0' max='2.0' bdresolution='0.001' automationEnabled='false' value='1.0'>
        <line name='' version='2' max='2.0' min='-2.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501256' name='sample start playback' 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='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501259' name='sample loop begin' 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='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501262' name='sample loop end' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.2'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.2'/>
        </line>
      </parameter>
      <parameter uniqueId='368501265' name='amplitude scaling' label='' min='0.0' max='0.5' bdresolution='0.01' automationEnabled='false' value='0.11'>
        <line name='' version='2' max='0.5' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.11'/>
        </line>
      </parameter>
      <parameter uniqueId='368501268' name='grain size' label='' min='0.001' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.338'>
        <line name='' version='2' max='1.0' min='0.001' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.338'/>
        </line>
      </parameter>
      <parameter uniqueId='368501271' name='grain rate' label='' min='-5.0' max='5.0' bdresolution='0.001' automationEnabled='false' value='-3.269'>
        <line name='' version='2' max='5.0' min='-5.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='-3.269'/>
        </line>
      </parameter>
      <parameter uniqueId='368501274' name='overlaps' label='' min='1.0' max='100.0' bdresolution='1' automationEnabled='false' value='22.0'>
        <line name='' version='2' max='100.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='22.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501277' name='filter envelope 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501280' name='envelope filter jitter depth' label='' min='0.0' max='10000.0' bdresolution='-1' automationEnabled='false' value='0.0'>
        <line name='' version='2' max='10000.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501283' name='envelope filter jitter min' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='28.000000000000014'>
        <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='28.000000000000014'/>
        </line>
      </parameter>
      <parameter uniqueId='368501286' name='envelope filter jitter max' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='67.0'>
        <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='67.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501289' name='envelope filter scale' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501292' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501295' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501300' 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='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501303' name='output Right' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='1.95'>
        <line name='' version='2' max='3.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.95'/>
        </line>
      </parameter>
      <parameter uniqueId='368501306' name='ADSR sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.66'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.66'/>
        </line>
      </parameter>
      <parameter uniqueId='368501309' name='ADSR 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501312' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.84'/>
        </line>
      </parameter>
      <parameter uniqueId='368501315' name='ADSR release' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.2'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.2'/>
        </line>
      </parameter>
      <parameter uniqueId='368501318' name='output Left' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='1.88'>
        <line name='' version='2' max='3.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.88'/>
        </line>
      </parameter>
      <parameter uniqueId='368501324' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501327' name='envelope pitch jitter depth' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.45'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.45'/>
        </line>
      </parameter>
      <parameter uniqueId='368501330' name='envelope pitch scale' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501333' name='envelope pitch jitter max' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='80.0'>
        <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='80.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501336' name='envelope pitch jitter min' label='' min='0.0' max='100.0' bdresolution='-1' automationEnabled='false' value='44.0'>
        <line name='' version='2' max='100.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='44.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501339' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501342' name='envelope amplitude jitter max' label='' min='0.0' max='20.0' bdresolution='-1' automationEnabled='false' value='14.8'>
        <line name='' version='2' max='20.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='14.8'/>
        </line>
      </parameter>
      <parameter uniqueId='368501345' name='envelope amplitude jitter 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501348' name='envelope amplitude scale' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501351' name='envelope amplitude jitter min' label='' min='0.0' max='20.0' bdresolution='-1' automationEnabled='false' value='8.0'>
        <line name='' version='2' max='20.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='8.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501354' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501357' name='filter bandreject gain' label='' min='0.0' max='1.0' bdresolution='0.1' automationEnabled='false' value='0.0'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501360' name='filter frequency cutoff' label='' min='20.0' max='18000.0' bdresolution='0.1' automationEnabled='false' value='2490.0'>
        <line name='' version='2' max='18000.0' min='20.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='2490.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501363' name='filter lowpass gain' label='' min='0.0' max='1.0' bdresolution='0.1' automationEnabled='false' value='1.0'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501366' name='filterX' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501369' name='filterY' 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='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501372' name='filter bandpass gain' label='' min='0.0' max='1.0' bdresolution='0.1' automationEnabled='false' value='1.0'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='1.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501375' name='filter highpass gain' label='' min='0.0' max='1.0' bdresolution='0.1' automationEnabled='false' value='0.0'>
        <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='0.0'/>
        </line>
      </parameter>
      <parameter uniqueId='368501378' name='filter Q' label='' min='0.1' max='3.0' bdresolution='-1' automationEnabled='false' value='2.1299999999999994'>
        <line name='' version='2' max='3.0' min='0.1' bdresolution='-1' color='-8355712' rightBound='true' endPointsLinked='false'>
          <linePoint x='0.0' y='2.1299999999999994'/>
        </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.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></comments>
      </udo>
      <udo>
        <opcodeName>k_SCORE_format_Sampler</opcodeName>
        <outTypes>ii</outTypes>
        <inTypes>iii</inTypes>
        <codeBody>iscore, ipitch, iamp  xin

if (iscore == 1) then
    ipitch = semitone(ipitch - 60)
    iamp    *=  0.007874016
endif

xout ipitch, iamp</codeBody>
        <comments></comments>
      </udo>
    </opcodeList>
  </instrument>
  <comment>ATTENTION: SSO gives its output over a SubChannel in the Mixer. Create a SubChannel first, name it and gave that name in Cycloop SubChannel box.
Otherwise, no sound will be heard.

DESCRIPTION:

Cycloop can be positioned in between the sampler and the granulator, as it has some aspects of both of them. 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:

Sample properties:
File Selector           -       select the sample to use
start pos.              -       skip in sample
loop begin/end          -       set looppoints begin and end
pitch                   -       pitch if sample

Grain properties:
size                    -       grain size in seconds
rate                    -       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.
overlap                 -       maximum number of overlaps
amp                     -       amount of amplitude scaling

Envelopes:
amplitude/filter/pitch envelopes    -   for each, it changes values over the note event
amplitude/filter exponential        -   convert envelope to exponential scale
scale                   -       scale the number of envelopes over the note event
jitter                  -       amount of jitter 
min/max                 -       limits minimum and maximum frequencies for jitter-       

Filters:
On/Off                  -       use filters or not, also activate if you want to use the filter envelope. In that case, frequency cutoff will be overriden bu envelope
frequency               -       frequency cutoff of filter
XY controller           -       move between the 4 filter types
lowpass/highpass/bandpass/bandreject    -   4 filter types
Quality                 -       amount of filter feedback

Global:
Trigger On/Off          -       set ADSR trigger to on or off
ADSR speed              -       frequency of retriggering of ADSR
Attack/Decay/Sustain/Release    -   ADSR settings
SubChannel              -       name of SubChannel to use
L/R                     -       output gain of SSO

---

version 2.0, June 2020
- SSO of Cycloop updated to instr version

version 1.1, Octobre 2019
- added amp. envelope and pitch envelope
- added 3 ADSRs

version 1.0, Octobre 2019
- takes in mono or stereo samples
- accepts refresh of overlaps while playing</comment>
</soundObject>