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


Partikkulary is a wrapper for the partikkel opcode, and more....
The opcode is designed to stretch granualtion methods to the limit.

- there are 4 samples as input to granulate.
- these 4 samples can be mixed
- the endresult has an amplitude envelope and ADSR


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


CONTROLLERS:

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


---

version 1.1, October 2020
- added filter, that allows key follow and amp follow
- allows switching between Midi pitch/frequency mode



</comment>
  <globalOrc>giCosine	ftgen	0, 0, 8193, 9, 1, 1, 90                                 ; cosine wave for trainlets
giDisttab	ftgen	0, 0, 32, 7, 0, 32, 1                                   ; for kdistribution

giProbDist	ftgen	0, 0, 512, 21, 4, 1                     		; probability distribution for random grain masking
</globalOrc>
  <globalSco/>
  <instrumentText>ipitch, iamp k_SCORE_format_Sampler i(&lt;scoreP4&gt;), p4, p5

iamplitude     =   p5

ktuning =   &lt;tuning&gt;

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

if i(&lt;grain envelope window&gt;) == 0 then                                         ; 3 grain envelope windows
    iWindow	ftgenonce	0, 0, 4096, 20, 2                                    
elseif i(&lt;grain envelope window&gt;) == 1 then
    iWindow	ftgenonce	0, 0, 4096, 20, 9, 1
else
    iWindow	ftgenonce	0, 0, 4096, 20, 6, 1
endif

;========================envelopes==============================================

if i(&lt;amplitude 1 exponential&gt;) == 1 then 
        kampenv  loopxseg   &lt;amplitude envelope rate&gt;/p3, 0, 0, &lt;envelope_amplitude envelope&gt;, 0
else
        kampenv  loopseg   &lt;amplitude envelope rate&gt;/p3, 0, 0, &lt;envelope_amplitude envelope&gt;, 0
endif

aampenv interp  kampenv                                                         ; upsample amp values

;====================loading of samples=========================================
;Sample 1
ivld1   filevalid &lt;file1&gt;                                                     
if ivld1 &gt; 0 then                                                               ; check if valid sample is imported - else, bypass
    iFile1 sampleONCE &lt;file1&gt;                                                   ; soundfile 1          
else
    if &lt;sample status&gt; == 1 then
        prints &quot;\n\n\nSAMPLE 1 OF Partikkulary INSTRUMENT %d IS NOT LOADED OR INVALID.\n\n\n&quot;, &lt;INSTR_ID&gt;
    endif
    iFile1  	ftgen	0, 0, 2^17, 10, 0                                       ; dummy table with no amplitude
endif

;Sample 2
ivld2   filevalid &lt;file2&gt;                                                      
if ivld2 &gt; 0 then                                                               ; check if valid sample is imported - else, bypass
    iFile2 sampleONCE &lt;file2&gt;                                                   ; soundfile 2           
else
    if &lt;sample status&gt; == 1 then
        prints &quot;\n\n\nSAMPLE 2 OF Partikkulary INSTRUMENT %d IS NOT LOADED OR INVALID.\n\n\n&quot;, &lt;INSTR_ID&gt;
    endif
    iFile2  	ftgen	0, 0, 2^17, 10, 0 
endif 

;Sample 3
ivld3   filevalid &lt;file3&gt;                                                     
if ivld3 &gt; 0 then                                                               ; check if valid sample is imported - else, bypass
    iFile3 sampleONCE &lt;file3&gt;                                                   ; soundfile 3          
else
    if &lt;sample status&gt; == 1 then
        prints &quot;\n\n\nSAMPLE 3 OF Partikkulary INSTRUMENT %d IS NOT LOADED OR INVALID.\n\n\n&quot;, &lt;INSTR_ID&gt;
    endif
    iFile3  	ftgen	0, 0, 2^17, 10, 0 
endif

;Sample 4
ivld4   filevalid &lt;file4&gt;                                                     
if ivld4 &gt; 0 then                                                               ; check if valid sample is imported - else, bypass
    iFile4 sampleONCE &lt;file4&gt;                                                   ; soundfile 4         
else
    if &lt;sample status&gt; == 1 then
        prints &quot;\n\n\nSAMPLE 4 OF Partikkulary INSTRUMENT %d IS NOT LOADED OR INVALID.\n\n\n&quot;, &lt;INSTR_ID&gt;
    endif
    iFile4  	ftgen	0, 0, 2^17, 10, 0 
endif
;Sample 5 FM inputtotal 
ivld5   filevalid &lt;file5&gt;                                                     
if ivld5 &gt; 0 then                                                               ; check if valid sample is imported - else, bypass
    iFile5 sampleONCE &lt;file5&gt;                                                   ; soundfile 5         
else
    if &lt;sample status&gt; == 1 then
        prints &quot;\n\n\nFM SAMPLE OF Partikkulary INSTRUMENT %d IS NOT LOADED OR INVALID.\n\n\n&quot;, &lt;INSTR_ID&gt;
    endif
;    iFile5&lt;INSTR_ID&gt;  	ftgenonce	0, 0, 2^17, 10, 0 
endif

;==========================parameters===========================================

kspeed      = &lt;grain speed&gt;                                                     ; 1 = original speed 
kgrainrate  = &lt;grain rate&gt;                                                      ; grain frequency rate
;agrainrate  interp  kgrainrate
kgrainsize  = &lt;grain size&gt;                                                      ; grain size in ms
kcent       = &lt;grain cent&gt;                                                      ; transposition in cent
kposrand    = &lt;grain random position&gt;                                           ; time position randomness (offset) of the pointer in ms
kcentrand   = &lt;grain cent random&gt;                                                  ; transposition randomness in cents
;ipan       = &lt;pan&gt;                                                             ; panning narrow (0) to wide (1)
kdist       = &lt;grain distribution&gt;                                              ; grain distribution (0=periodic, 1=scattered)
klograte    = log(&lt;grain rate&gt;)                                                 ; compensate for big volume changes
klogsize    = log(&lt;grain size&gt;)                                                 ; compensate for big volume changes
klogsize    *=  .5                                                              ; &amp; adjust pre-volume

;==================query soundfiles=============================================
ifilen1     tableng	iFile1                                                  ; calculate length of soundfile and use it for range of looping
ifilen2     tableng	iFile2
ifilen3     tableng	iFile3
ifilen4     tableng	iFile4
ifildur1    = ifilen1 / sr
ifildur2    = ifilen2 / sr
ifildur3    = ifilen3 / sr
ifildur4    = ifilen4 / sr

;===============================================================================
async			= 0                                                     /*sync input (disabled)*/	
/*grain envelope*/
kenv2amt		= &lt;grain envelope&gt;                                      ; use only secondary envelope
ienv2tab 		= iWindow                                               ; grain (secondary) envelope
ienv_attack		= -1                                                    ; default attack envelope (flat)
ienv_decay		= -1                                                    ; default decay envelope (flat)
ksustain_amount		= 0.5                                                   ; no meaning in this case (use only secondary envelope, ienv2tab)
ka_d_ratio		= 0.5                                                   ; no meaning in this case (use only secondary envelope, ienv2tab)
/*amplitude*/
kamp			= 1                                       ; grain amplitude
igainmasks		= -1                                                    ; (default) no gain masking
/*transposition*/
kcentrand		rand kcentrand                                          ; random transposition
iorig1			= 1 / ifildur1                                          ; original sample pitch 
iorig2			= 1 / ifildur2
iorig3			= 1 / ifildur3
iorig4			= 1 / ifildur4
kwavfreq		= iorig1 * cent(kcent + kcentrand)
imax_grains             = &lt;grains maximum&gt;                                      ;maximum number of grains per k-period

;==================other sample pitch  related==================================

if i(&lt;sweepON&gt;) == 1 then
    ksweepshape	= &lt;sweep shape&gt;                                                 ; grain wave sample pitch  sweep shape (sweep speed), 0.5 is linear sweep
    iwavfreqstarttab ftgenonce	0, 0, 16, -2, 0, 0,   1                         ; start freq scalers, per grain
    iwavfreqendtab   ftgenonce	0, 0, 16, -2, 0, 0,   0                         ; end freq scalers, per grain
        if i(&lt;sweep sound&gt;) == 1 then                                           ; 2 sample pitch options
            kStartFreq	oscil	&lt;sweep depth&gt;, kgrainrate
        else 
            kStartFreq	randh	&lt;sweep depth&gt;, kgrainrate
        endif
    kStartFreq	= 1 + kStartFreq                                                ; offset, center multiplier at 1
    tablew	kStartFreq, 2, iwavfreqstarttab                                 ; write start freq multiplier to table
else
    ksweepshape         = 0                                                     ; 0=no sweep
    iwavfreqstarttab    = -1                                                    ; default frequency sweep start (value in table = 1, which give no frequency modification)
    iwavfreqendtab	= -1                                                    ; default frequency sweep end (value in table = 1, which give no frequency modification)
endif

;=====================FM input==================================================

if i(&lt;FM input&gt;) == 0 then                                                      ;3 FM input options
    awavfm  =   0                                                               ; disabled
elseif i(&lt;FM input&gt;) == 1 then
    awavfm  oscil	&lt;FM intensity&gt;, &lt;FM frequency&gt;                          ; sine
elseif i(&lt;FM input&gt;) == 2  then
    awavfm  dust &lt;FM intensity&gt;, &lt;FM frequency&gt;                                 ; noise
elseif i(&lt;FM input&gt;) == 3 &amp;&amp; (ivld5 &gt; 0)then
    ilen   filelen &lt;file5&gt;                                                      ; sample
prints &quot;\nFM SAMPLE USED!!!\n\n&quot;
    ichn filenchnls  &lt;file5&gt;                                                    ; check number of channels
        if (ichn == 1) then                                                     ; mono signal
            awavfm  loscil  &lt;FM intensity&gt;, &lt;FM frequency&gt;, iFile5, 1, 1        ; audio input for frequency modulation inside grain
        else                                                                    ; stereo signal
            awavfm, awavfmR	loscil	&lt;FM intensity&gt;, &lt;FM frequency&gt;, iFile5, 1, 1  
        endif
endif

ifmamptab		= -1                                                    ; default FM scaling (=1)
kfmenv			= -1                                                    ; default FM envelope (flat)

;====================trainlets==================================================

if (i(&lt;trainletsON&gt;) == 1) then
    icosine         = giCosine                                                  ; cosine ftable
    kTrainCps       = kgrainrate                                                ; set trainlet cps equal to grain rate for single-cycle trainlet in each grain
    knumpartials    = &lt;trainlets quantity&gt;                                      ; number of partials in trainlet
    kchroma         = &lt;trainlets chroma&gt;                                        ; color balance of partials in trainlet
else
    icosine         = giCosine                                                  ; quiet settings                                  
    kTrainCps       = 1                                          
    knumpartials    = 1                                  
    kchroma         = 1                                         
endif

;=========================panning===============================================

ichannelmasks	ftgenonce	0, 0, 32, -2, 0, 0, 0 
kchn phasor &lt;panning spread speed&gt;                                              ; continuously write to masking table,
krnd    =   rnd(&lt;panning random spread&gt;)                                        ; scatter the sound
kchn    *=  krnd
kchn = kchn * nchnls                                                            ; look at number of channels
tablew kchn, 2, ichannelmasks

;====================random gain masking========================================

if i(&lt;grain amlitude tableON&gt;) == 1 then   
    krandommask loopseg   1/p3, 0, 0, &lt;envelope_amplitude of grains over note&gt;, 0 ; read envelope
else
    krandommask = 0                                                             ; full gain for all grains 
endif
;================waveforms parameters===========================================
kwaveform1	= iFile1                                                        ; source waveform
kwaveform2	= iFile2	
kwaveform3	= iFile3
kwaveform4	= iFile4
	
iwaveamptab	ftgenonce   0, 0, 8, -2, 0, 0,   1,0,0,0,0                      ; wave mix masking in groups of 5 amp values, reflecting source1, source2, source3, source4, and the 5th slot is for trainlet amplitude.

kwgain5 = &lt;trainlets amplitude&gt;                                                 ; trainlet gain

	tablew  &lt;gain1&gt;, 2, iwaveamptab                                         ; write waveforms amps to wave mix mask table
	tablew	&lt;gain2&gt;, 3, iwaveamptab
	tablew	&lt;gain3&gt;, 4, iwaveamptab
	tablew	&lt;gain4&gt;, 5, iwaveamptab
	tablew	kwgain5, 6, iwaveamptab                                         ; write trainlet amp to mix mask table
;===================time pointer================================================

afilposphas1	phasor kspeed / ifildur1
afilposphas2	phasor kspeed / ifildur2
afilposphas3	phasor kspeed / ifildur3
afilposphas4	phasor kspeed / ifildur4
/*generate random deviation of the time pointer*/
kposrandsec	= kposrand / 100                                                ; ms -&gt; sec
kposrand	= kposrandsec / ifildur1                                        ; phase values (0-1)
krndpos		linrand	 kposrand                                               ; random offset in phase values
/*add random deviation to the time pointer*/
asamplepos1	= afilposphas1 + krndpos + &lt;sample start 1&gt;                     ; resulting phase values (0-1)
asamplepos2	= afilposphas2 + krndpos + &lt;sample start 2&gt;
asamplepos3	= afilposphas3 + krndpos + &lt;sample start 3&gt;
asamplepos4	= afilposphas4 + krndpos + &lt;sample start 4&gt;    

;==========================pitch waveform=========================================

kwavekey1       = &lt;sample pitch 1&gt;                                              ;original pitch for each source waveform
kwavekey2       = &lt;sample pitch 2&gt;	
kwavekey3       = &lt;sample pitch 3&gt;
kwavekey4       = &lt;sample pitch 4&gt;

;===========================output==============================================
klogratecomp logcurve klograte, 3
klogratecomp *= .5

aLL, aRR	partikkel   kgrainrate, \                                       ; number of grains per second
                    kdist, giDisttab, \                                         ; periodic or stochastic distribution of grains, 0 = periodic.
                    async, \                                                    ; sync input - not used here
                    kenv2amt, ienv2tab, \                                       ; amount of enveloping for the secondary envelope for each grain. Range 0 to 1. function table number, additional envelope applied to grain, done after attack and decay envelopes.
                    ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, \     ; function table numbers, attack/decay shape of grain, proportional attack/sustain/decay
                    kgrainsize, kamp, igainmasks, \                             ; Multiplied by per grain amplitude read from igainmasks
                    kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, \  ; transposition scaling. Multiplied with start and end transposition values read from iwavfreqstarttab and iwavfreqendtab. 
                    awavfm, ifmamptab, kfmenv, \                                ; FM 
                    icosine, kTrainCps, knumpartials, kchroma, \                ; trainlets
                    ichannelmasks, \                                            ; function table number. Range is 0 to N, where N is the number of output channels. 
                    krandommask, \                                              ; random masking (muting) of individual grains. Range 0 to 1
                    kwaveform1, kwaveform2, kwaveform3, kwaveform4, \           ; samples
                    iwaveamptab, \                                              ; gain value for each of the 4 source waveforms, and the 5th value represent trainlet amplitude.
                    asamplepos1, asamplepos2, asamplepos3, asamplepos4, \       ; start position for reading source waveforms
                    kwavekey1*ipitch*ktuning, kwavekey2*ipitch*ktuning, kwavekey3*ipitch*ktuning, kwavekey4*ipitch*ktuning, \               ; original key of source waveforms and tunings
                    imax_grains                                                 ; maximum number of grains per k-period.
aL  dcblock aLL
aR  dcblock aRR

if (&lt;ADSRon&gt; == 1) then
    if &lt;envelope speed&gt; &gt; 0 then
        agate = lfo(1, &lt;envelope speed&gt;)
        aretrig init 1
        aenv adsr140 agate, aretrig, &lt;amp attack&gt;, &lt;amp decay&gt;, &lt;amp sustain&gt;, &lt;amp release&gt;    ; retriggering envelope 1 or
    else
        aenv madsr i(&lt;amp attack&gt;) + 0.0001, i(&lt;amp decay&gt;), i(&lt;amp sustain&gt;), i(&lt;amp release&gt;)  ; static envelope 2
    endif
else                                                                            ; no envelope at all
    aenv    =   .4
endif
;================================filter=========================================

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

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

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

    if &lt;filter follower&gt; == 0 then                                              ; disable follower
        acutoff   =   kcutoff
    elseif &lt;filter follower&gt; == 1 then                                          ; amp --&gt; filter
        acutoff = iamp * kcutoff;
    elseif &lt;filter follower&gt; == 2 then                                          ; -(amp) --&gt; filter
        acutoff = kcutoff - (iamp * kcutoff)
    elseif &lt;filter follower&gt; == 3 then                                          ; key --&gt; filter
        acutoff   =   kcutoff * ipitch
    elseif &lt;filter follower&gt; == 4 then                                          ; -(key) --&gt; filter
        acutoff   =   kcutoff * 1/ipitch
    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  aLL, acutoff, kQ                         ; don&apos;t use lowpass filter here
    ar, abpR, ahpR  zdf_2pole_mode  aRR, acutoff, kQ                         ; use only for bandpass and highpass (12 dB)
    alpL            zdf_ladder      aLL, acutoff, kQ                         ; but use this lowpass (24 dB)
    alpR            zdf_ladder      aRR, 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;

    aL   =   (ahpL + alpL + abpL)                                            ; mix all filter gains
    aR   =   (ahpR + alpR + abpR)
endif

atotalleft  =   aL * klogratecomp * aampenv * iamplitude * aenv * &lt;gain Left&gt;
atotalright =   aR * klogratecomp * aampenv * iamplitude * aenv * &lt;gain Right&gt;

blueMixerOut atotalleft, atotalright

</instrumentText>
  <alwaysOnInstrumentText></alwaysOnInstrumentText>
  <graphicInterface editEnabled='false'>
    <gridSettings>
      <width>5</width>
      <height>5</height>
      <gridStyle>DOT</gridStyle>
      <snapGridEnabled>true</snapGridEnabled>
    </gridSettings>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
      <objectName></objectName>
      <x>0</x>
      <y>0</y>
      <groupName>Group</groupName>
      <backgroundColor>0x00000033</backgroundColor>
      <borderColor>0x000000ff</borderColor>
      <labelTextColor>0xffffffff</labelTextColor>
      <titleEnabled>true</titleEnabled>
      <width>20</width>
      <height>20</height>
      <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
        <objectName></objectName>
        <x>0</x>
        <y>0</y>
        <groupName>l---------------------------- P a r t i k k u l a r y ----------------------------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>10</x>
          <y>570</y>
          <groupName>filters</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>false</titleEnabled>
          <width>824</width>
          <height>20</height>
          <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>17.405</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.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>1.0</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 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.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>0</selectedIndex>
              <fontSize>12</fontSize>
              <randomizable>true</randomizable>
              <bsbDropdownItemList>
                <bsbDropdownItem uniqueId='1712680256'>
                  <name>disabled</name>
                  <value>0</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1712680257'>
                  <name>AttDecSus</name>
                  <value>1</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1712680258'>
                  <name>Graphic</name>
                  <value>2</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1712680259'>
                  <name>ADS+Graphic</name>
                  <value>3</value>
                </bsbDropdownItem>
              </bsbDropdownItemList>
            </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.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.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.0</maximum>
              <bdresolution>0.01</bdresolution>
              <value>1.0</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>280</x>
              <y>10</y>
              <label>GRAPH</label>
              <font>
                <name>System Bold</name>
                <size>18.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.43000000000000005</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.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.0</maximum>
              <bdresolution>0.05</bdresolution>
              <value>1.0</value>
              <sliderHeight>57</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.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.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>1.0</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.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.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.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.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>
          <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>3</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1712680260'>
                <name>---</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680261'>
                <name>amp follow</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680262'>
                <name>amp follow invert</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680263'>
                <name>key follow</name>
                <value>3</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680264'>
                <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.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 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>11.514000000000001</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.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.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.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.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.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>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>270</y>
          <groupName>Frequency Modulation of grains</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>745</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>FM frequency</objectName>
            <x>690</x>
            <y>0</y>
            <comment>pitch of sample for FM</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.1</minimum>
            <maximum>10.0</maximum>
            <value>0.892</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>freq.</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>FM intensity</objectName>
            <x>640</x>
            <y>0</y>
            <comment>gain of sample for FM</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>10.0</maximum>
            <value>0.0</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
            <label>gain</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file5</objectName>
            <x>100</x>
            <y>10</y>
            <comment>load sample to be used for Frequency Modulation</comment>
            <fileName>/media/menno/datae/EigenWerk/verzameling_ideejen/samples/box.wav</fileName>
            <textFieldWidth>500</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>FM input</objectName>
            <x>10</x>
            <y>10</y>
            <comment>no FM, sine, noise or sample FM</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1712680265'>
                <name>disabled</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680266'>
                <name>sine</name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680267'>
                <name>noise</name>
                <value>2</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680268'>
                <name>sample</name>
                <value>3</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>1000</x>
          <y>280</y>
          <groupName>output</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>40</x>
            <y>10</y>
            <label>tuning</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>146</x>
            <y>11</y>
            <label>L</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>gain Left</objectName>
            <x>135</x>
            <y>20</y>
            <comment>output gain Left channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>2.12</value>
            <sliderHeight>80</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>tuning</objectName>
            <x>35</x>
            <y>20</y>
            <comment>overall tuning</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>4.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>1.0</value>
            <sliderHeight>50</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>gain Right</objectName>
            <x>156</x>
            <y>21</y>
            <comment>output gain Right channel</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>5.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>2.16</value>
            <sliderHeight>79</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>scoreP4</objectName>
            <x>40</x>
            <y>285</y>
            <comment>choose for pitch between midi notes/real values</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1712680272'>
                <name>P4 = frequency</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680273'>
                <name>P4 = MIDI pitch</name>
                <value>1</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>75</x>
            <y>270</y>
            <label>score P4</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>166</x>
            <y>11</y>
            <label>R</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>15</x>
            <y>115</y>
            <groupName>panning</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>182</width>
            <height>129</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>panning random spread</objectName>
              <x>85</x>
              <y>10</y>
              <comment>time position randomness (offset) of the pointer in ms</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>1.0</value>
              <knobWidth>40</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>randomspread</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>20</x>
              <y>85</y>
              <label>spreadspeed</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
              <objectName>panning spread speed</objectName>
              <x>10</x>
              <y>90</y>
              <comment>scatter the sound over 2 channels</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>1.0</value>
              <sliderWidth>100</sliderWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>grain distribution</objectName>
              <x>10</x>
              <y>10</y>
              <comment>grain distribution (0=periodic, 1=scattered)</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.44</value>
              <knobWidth>40</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>distribution</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>755</x>
          <y>10</y>
          <groupName>grain properties</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>20</width>
          <height>547</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>85</x>
            <y>10</y>
            <groupName>frequency</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>20</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain cent random</objectName>
              <x>35</x>
              <y>0</y>
              <comment>adds some random pitch</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1000.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>0.0</value>
              <sliderHeight>290</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain cent</objectName>
              <x>0</x>
              <y>0</y>
              <comment>add pitch variations in cents</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1000.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>141.3</value>
              <sliderHeight>290</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>5</x>
              <y>290</y>
              <label> cent</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>40</x>
              <y>290</y>
              <label>dirt</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>grain envelope</objectName>
            <x>190</x>
            <y>350</y>
            <comment>use only secondary envelope</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>1.0</value>
            <knobWidth>40</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>gr. env</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBTextField'>
            <objectName>grains maximum</objectName>
            <x>130</x>
            <y>355</y>
            <comment>maximum number of grains per k-period</comment>
            <value>100</value>
            <textFieldWidth>50</textFieldWidth>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>355</y>
            <label>maximum of grains</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
            <objectName>grain envelope window</objectName>
            <x>90</x>
            <y>380</y>
            <comment>grain (secondary) envelope</comment>
            <automationAllowed>true</automationAllowed>
            <selectedIndex>0</selectedIndex>
            <fontSize>12</fontSize>
            <randomizable>true</randomizable>
            <bsbDropdownItemList>
              <bsbDropdownItem uniqueId='1712680269'>
                <name>Hanning</name>
                <value>0</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680270'>
                <name>Sync </name>
                <value>1</value>
              </bsbDropdownItem>
              <bsbDropdownItem uniqueId='1712680271'>
                <name>Gaussian</name>
                <value>2</value>
              </bsbDropdownItem>
            </bsbDropdownItemList>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>10</x>
            <y>10</y>
            <groupName>speed</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>20</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain speed</objectName>
              <x>0</x>
              <y>1</y>
              <comment>speed of playback cursor through sample</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>3.0</maximum>
              <bdresolution>0.0001</bdresolution>
              <value>0.7223</value>
              <sliderHeight>284</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>0</x>
              <y>290</y>
              <label>speed</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain random position</objectName>
              <x>35</x>
              <y>0</y>
              <comment>add some random speed</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>500.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>48.9</value>
              <sliderHeight>290</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>40</x>
              <y>290</y>
              <label>dirt</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>10</x>
            <y>385</y>
            <label>env. window</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>10</x>
            <y>410</y>
            <comment>envelope for amplitude</comment>
            <groupName>ADSR</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>20</width>
            <height>104</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
              <objectName></objectName>
              <x>20</x>
              <y>15</y>
              <comment>amplitude envelope</comment>
              <groupName>Group</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>amp sustain</objectName>
                <x>85</x>
                <y>0</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>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>amp release</objectName>
                <x>130</x>
                <y>0</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>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>amp decay</objectName>
                <x>50</x>
                <y>0</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.41000000000000003</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.BSBKnob' version='2'>
                <objectName>amp attack</objectName>
                <x>5</x>
                <y>0</y>
                <automationAllowed>true</automationAllowed>
                <minimum>0.0</minimum>
                <maximum>1.0</maximum>
                <value>0.0</value>
                <knobWidth>31</knobWidth>
                <randomizable>true</randomizable>
                <valueDisplayEnabled>false</valueDisplayEnabled>
                <label>attack</label>
                <labelEnabled>true</labelEnabled>
                <font>
                  <name>System Regular</name>
                  <size>12.0</size>
                </font>
              </bsbObject>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>ADSRon</objectName>
              <x>5</x>
              <y>5</y>
              <comment>ON/OFF for ADSR</comment>
              <automationAllowed>true</automationAllowed>
              <label/>
              <selected>false</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
              <objectName>envelope speed</objectName>
              <x>10</x>
              <y>70</y>
              <comment>retrigger ADSR for amplitude</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>15.0</maximum>
              <bdresolution>0.01</bdresolution>
              <value>9.16</value>
              <sliderWidth>150</sliderWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>160</x>
            <y>10</y>
            <groupName>size</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>20</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain size</objectName>
              <x>35</x>
              <y>0</y>
              <comment>adds random variation to rate</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>2.0</minimum>
              <maximum>1000.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>16.4</value>
              <sliderHeight>290</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
              <objectName>grain rate</objectName>
              <x>0</x>
              <y>0</y>
              <comment>number of grains per second</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>1.5</minimum>
              <maximum>100.0</maximum>
              <bdresolution>0.1</bdresolution>
              <value>39.3</value>
              <sliderHeight>290</sliderHeight>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>false</valueDisplayEnabled>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>0</x>
              <y>290</y>
              <label> rate</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>40</x>
              <y>290</y>
              <label>size</label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>1000</x>
          <y>10</y>
          <groupName>grain distortions </groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>209</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>10</x>
            <y>120</y>
            <groupName>trainlets</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>190</width>
            <height>104</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>trainlets chroma</objectName>
              <x>80</x>
              <y>10</y>
              <comment>color balance of partials in trainlet</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>2.0</maximum>
              <value>0.5400000000000003</value>
              <knobWidth>30</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>chroma</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>50</x>
              <y>80</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>100</x>
              <y>80</y>
              <label></label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>trainlets quantity</objectName>
              <x>30</x>
              <y>10</y>
              <comment>number of partials in trainlet</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>1.0</minimum>
              <maximum>20.0</maximum>
              <value>15.44</value>
              <knobWidth>30</knobWidth>
              <randomizable>false</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>quantity</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>trainlets amplitude</objectName>
              <x>135</x>
              <y>10</y>
              <comment>amplitude of trainlets</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.51</value>
              <knobWidth>30</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>amp</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>180</x>
              <y>80</y>
              <label></label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>trainletsON</objectName>
              <x>10</x>
              <y>10</y>
              <comment>ON/OFF </comment>
              <automationAllowed>true</automationAllowed>
              <label/>
              <selected>true</selected>
              <randomizable>true</randomizable>
            </bsbObject>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
            <objectName></objectName>
            <x>10</x>
            <y>10</y>
            <groupName>sweep</groupName>
            <backgroundColor>0x669966ff</backgroundColor>
            <borderColor>0x000000ff</borderColor>
            <labelTextColor>0xffffffff</labelTextColor>
            <titleEnabled>true</titleEnabled>
            <width>190</width>
            <height>20</height>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>sweep depth</objectName>
              <x>80</x>
              <y>5</y>
              <comment>grain wave sample pitch  sweep shape </comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.8200000000000001</value>
              <knobWidth>30</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 type='blue.orchestra.blueSynthBuilder.BSBDropdown' version='2'>
              <objectName>sweep sound</objectName>
              <x>10</x>
              <y>40</y>
              <automationAllowed>true</automationAllowed>
              <selectedIndex>0</selectedIndex>
              <fontSize>12</fontSize>
              <randomizable>true</randomizable>
              <bsbDropdownItemList>
                <bsbDropdownItem uniqueId='1712680274'>
                  <name>sine</name>
                  <value>0</value>
                </bsbDropdownItem>
                <bsbDropdownItem uniqueId='1712680275'>
                  <name>noise</name>
                  <value>1</value>
                </bsbDropdownItem>
              </bsbDropdownItemList>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
              <objectName>sweepON</objectName>
              <x>10</x>
              <y>10</y>
              <automationAllowed>true</automationAllowed>
              <label/>
              <selected>false</selected>
              <randomizable>true</randomizable>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
              <objectName></objectName>
              <x>140</x>
              <y>65</y>
              <label></label>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
            <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
              <objectName>sweep shape</objectName>
              <x>120</x>
              <y>5</y>
              <comment>sweep shape (sweep speed), 0.5 is linear sweep</comment>
              <automationAllowed>true</automationAllowed>
              <minimum>0.0</minimum>
              <maximum>1.0</maximum>
              <value>0.89</value>
              <knobWidth>30</knobWidth>
              <randomizable>true</randomizable>
              <valueDisplayEnabled>true</valueDisplayEnabled>
              <label>shape</label>
              <labelEnabled>true</labelEnabled>
              <font>
                <name>System Regular</name>
                <size>12.0</size>
              </font>
            </bsbObject>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>10</y>
          <groupName>mix samples</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>745</width>
          <height>20</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file3</objectName>
            <x>100</x>
            <y>120</y>
            <comment>load soundfile #3</comment>
            <fileName>/media/menno/datae/EigenWerk/verzameling_ideejen/samples/zaagtand.wav</fileName>
            <textFieldWidth>565</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>365</x>
            <y>150</y>
            <label>pitch</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>gain2</objectName>
            <x>700</x>
            <y>65</y>
            <comment>pregain for sample 2</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.0</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>gain</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file1</objectName>
            <x>97</x>
            <y>8</y>
            <comment>load soundfile #1</comment>
            <fileName></fileName>
            <textFieldWidth>568</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>sample status</objectName>
            <x>5</x>
            <y>10</y>
            <comment>reports wheter samples are loaded/invalid or not</comment>
            <automationAllowed>false</automationAllowed>
            <label>report</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>80</x>
            <y>10</y>
            <label>1</label>
            <font>
              <name>System Bold</name>
              <size>20.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>365</x>
            <y>95</y>
            <label>pitch</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>gain3</objectName>
            <x>700</x>
            <y>120</y>
            <comment>pregain for sample 3</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.0</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>gain</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file4</objectName>
            <x>100</x>
            <y>175</y>
            <comment>load soundfile #4</comment>
            <fileName></fileName>
            <textFieldWidth>565</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>365</x>
            <y>205</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>80</x>
            <y>65</y>
            <label>2</label>
            <font>
              <name>System Bold</name>
              <size>20.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>205</y>
            <label>start in sample</label>
            <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>150</y>
            <label>start in sample</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample pitch 3</objectName>
            <x>395</x>
            <y>145</y>
            <comment>pitch of sample 3</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.08</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample start 3</objectName>
            <x>95</x>
            <y>145</y>
            <comment>offset for sample playback</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>40</y>
            <label>start in sample</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample pitch 2</objectName>
            <x>395</x>
            <y>90</y>
            <comment>pitch of sample 2</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.39</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample start 2</objectName>
            <x>95</x>
            <y>90</y>
            <comment>offset for sample playback</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.0</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>5</x>
            <y>95</y>
            <label>start in sample</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>gain1</objectName>
            <x>700</x>
            <y>5</y>
            <comment>pregain for sample 1</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.0</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>gain</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>80</x>
            <y>120</y>
            <label>3</label>
            <font>
              <name>System Bold</name>
              <size>20.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
            <objectName>gain4</objectName>
            <x>700</x>
            <y>175</y>
            <comment>pregain for sample 4</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <value>0.0</value>
            <knobWidth>30</knobWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
            <label>gain</label>
            <labelEnabled>true</labelEnabled>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample pitch 4</objectName>
            <x>395</x>
            <y>200</y>
            <comment>pitch of sample 4</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.62</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample pitch 1</objectName>
            <x>395</x>
            <y>35</y>
            <comment>pitch of sample 1</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>3.0</maximum>
            <bdresolution>0.01</bdresolution>
            <value>0.52</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>true</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBFileSelector'>
            <objectName>file2</objectName>
            <x>100</x>
            <y>65</y>
            <comment>load soundfile #2</comment>
            <fileName>/media/menno/datae/EigenWerk/verzameling_ideejen/samples/bastril.wav</fileName>
            <textFieldWidth>565</textFieldWidth>
            <stringChannelEnabled>true</stringChannelEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>80</x>
            <y>175</y>
            <label>4</label>
            <font>
              <name>System Bold</name>
              <size>20.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBHSlider' version='2'>
            <objectName>sample start 4</objectName>
            <x>95</x>
            <y>200</y>
            <comment>offset for sample playback</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.148</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>365</x>
            <y>40</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 start 1</objectName>
            <x>95</x>
            <y>35</y>
            <comment>offset for sample playback</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>0.0</minimum>
            <maximum>1.0</maximum>
            <bdresolution>0.001</bdresolution>
            <value>0.148</value>
            <sliderWidth>250</sliderWidth>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
        </bsbObject>
        <bsbObject type='blue.orchestra.blueSynthBuilder.BSBGroup'>
          <objectName></objectName>
          <x>10</x>
          <y>360</y>
          <groupName>amplitude envelopes</groupName>
          <backgroundColor>0x669966ff</backgroundColor>
          <borderColor>0x000000ff</borderColor>
          <labelTextColor>0xffffffff</labelTextColor>
          <titleEnabled>true</titleEnabled>
          <width>741</width>
          <height>190</height>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>amplitude 1 exponential</objectName>
            <x>680</x>
            <y>125</y>
            <comment>treat amplitude envelope as exponential</comment>
            <automationAllowed>true</automationAllowed>
            <label>exp</label>
            <selected>true</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
            <objectName>grain amlitude tableON</objectName>
            <x>635</x>
            <y>10</y>
            <comment>ON/OFF to activate amplitude envelope</comment>
            <automationAllowed>true</automationAllowed>
            <label>amps grain</label>
            <selected>false</selected>
            <randomizable>true</randomizable>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel' version='2'>
            <objectName></objectName>
            <x>635</x>
            <y>35</y>
            <label>amp env rate</label>
            <font>
              <name>System Regular</name>
              <size>12.0</size>
            </font>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBVSlider' version='2'>
            <objectName>amplitude envelope rate</objectName>
            <x>650</x>
            <y>45</y>
            <comment>rate of repetitions of amplitude envelope</comment>
            <automationAllowed>true</automationAllowed>
            <minimum>1.0</minimum>
            <maximum>30.0</maximum>
            <bdresolution>0.1</bdresolution>
            <value>1.0</value>
            <sliderHeight>135</sliderHeight>
            <randomizable>true</randomizable>
            <valueDisplayEnabled>false</valueDisplayEnabled>
          </bsbObject>
          <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLineObject'>
            <objectName>envelope</objectName>
            <x>10</x>
            <y>10</y>
            <comment>envelopes for amplitude, amplitude of grains per note (bottom=mute), filter</comment>
            <canvasWidth>610</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='-16741632' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.09027777777777778' y='1.0'/>
                <linePoint x='0.7278688524590164' y='0.2666666666666667'/>
                <linePoint x='0.8861111111111111' y='1.0'/>
                <linePoint x='1.0' y='0.0'/>
              </line>
              <line name='amplitude of grains over note' version='2' max='1.0' min='0.0' bdresolution='-1' color='-10027009' rightBound='true' endPointsLinked='false'>
                <linePoint x='0.0' y='0.0'/>
                <linePoint x='0.30277777777777776' y='0.0'/>
                <linePoint x='0.30277777777777776' y='1.0'/>
                <linePoint x='0.6833333333333333' y='1.0'/>
                <linePoint x='1.0' y='0.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.5'/>
                <linePoint x='0.39444444444444443' y='0.76'/>
                <linePoint x='0.5430555555555555' y='0.07333333333333336'/>
                <linePoint x='0.7972222222222223' y='0.046666666666666634'/>
                <linePoint x='1.0' y='0.5'/>
              </line>
            </lines>
          </bsbObject>
        </bsbObject>
      </bsbObject>
    </bsbObject>
  </graphicInterface>
  <parameterList>
    <parameter uniqueId='1712680277' name='gain3' 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='1712680279' name='sample start 4' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.148'>
      <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.148'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680281' name='gain1' 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='1712680283' name='sample pitch 1' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='0.52'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.52'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680285' name='sample pitch 3' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='0.08'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.08'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680287' name='sample start 3' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680289' name='gain4' 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='1712680291' name='gain2' 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='1712680293' name='sample pitch 2' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='0.39'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.39'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680295' name='sample pitch 4' label='' min='0.0' max='3.0' bdresolution='0.01' automationEnabled='false' value='0.62'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.62'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680297' name='sample start 1' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.148'>
      <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.148'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680299' name='sample start 2' label='' min='0.0' max='1.0' bdresolution='0.001' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680301' 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='1712680303' 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='1712680305' 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='1712680307' 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='1712680309' name='filter frequency cutoff' label='' min='4.35' max='14.3' bdresolution='-1' automationEnabled='false' value='11.514000000000001'>
      <line name='' version='2' max='14.3' min='4.35' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='11.514000000000001'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680311' name='filter resonance' label='' min='0.5' max='25.0' bdresolution='-1' automationEnabled='false' value='17.405'>
      <line name='' version='2' max='25.0' min='0.5' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='17.405'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680313' name='filter follower' label='' min='0.0' max='4.0' bdresolution='1' automationEnabled='false' value='3.0'>
      <line name='' version='2' max='4.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='3.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680315' name='filter total depth' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680317' 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='1712680319' name='filter envelopes' label='' min='0.0' max='3.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680321' name='filter ads decay' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.43000000000000005'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.43000000000000005'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680323' 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='1712680325' name='filter envelope depth' label='' min='0.0' max='1.0' bdresolution='0.05' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.05' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680327' 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='1712680329' name='filter ads sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680331' name='filter ads depth' label='' min='0.0' max='1.0' bdresolution='0.01' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680333' name='FM input' label='' min='0.0' max='3.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680335' name='FM intensity' label='' min='0.0' max='10.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='10.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680337' name='FM frequency' label='' min='0.1' max='10.0' bdresolution='-1' automationEnabled='false' value='0.892'>
      <line name='' version='2' max='10.0' min='0.1' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.892'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680339' name='scoreP4' 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='1712680341' name='gain Right' label='' min='0.0' max='5.0' bdresolution='0.01' automationEnabled='false' value='2.16'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.16'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680343' name='grain distribution' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.44'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.44'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680345' name='panning spread speed' 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='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680347' name='panning random spread' 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='1712680349' name='tuning' label='' min='0.0' max='4.0' bdresolution='0.01' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='4.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680351' name='gain Left' label='' min='0.0' max='5.0' bdresolution='0.01' automationEnabled='false' value='2.12'>
      <line name='' version='2' max='5.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='2.12'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680353' name='amplitude 1 exponential' 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='1712680355' name='amplitude envelope rate' label='' min='1.0' max='30.0' bdresolution='0.1' automationEnabled='false' value='1.0'>
      <line name='' version='2' max='30.0' min='1.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680357' name='grain amlitude tableON' 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='1712680359' name='sweep depth' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.8200000000000001'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.8200000000000001'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680361' name='sweep shape' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.89'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.89'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680363' name='sweepON' 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='1712680365' name='sweep sound' 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='1712680367' name='trainlets amplitude' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.51'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.51'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680369' name='trainlets chroma' label='' min='0.0' max='2.0' bdresolution='-1' automationEnabled='false' value='0.5400000000000003'>
      <line name='' version='2' max='2.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.5400000000000003'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680371' name='trainlets quantity' label='' min='1.0' max='20.0' bdresolution='-1' automationEnabled='false' value='15.44'>
      <line name='' version='2' max='20.0' min='1.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='15.44'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680373' name='trainletsON' 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='1712680375' name='grain cent random' label='' min='0.0' max='1000.0' bdresolution='0.1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1000.0' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680377' name='grain cent' label='' min='0.0' max='1000.0' bdresolution='0.1' automationEnabled='false' value='141.3'>
      <line name='' version='2' max='1000.0' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='141.3'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680379' name='amp sustain' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680381' name='amp decay' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.41000000000000003'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.41000000000000003'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680383' name='amp attack' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680385' name='amp release' label='' min='0.0' max='1.0' bdresolution='-1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='1.0' min='0.0' bdresolution='-1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680387' 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='1712680389' name='envelope speed' label='' min='0.0' max='15.0' bdresolution='0.01' automationEnabled='false' value='9.16'>
      <line name='' version='2' max='15.0' min='0.0' bdresolution='0.01' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='9.16'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680391' name='grain rate' label='' min='1.5' max='100.0' bdresolution='0.1' automationEnabled='false' value='39.3'>
      <line name='' version='2' max='100.0' min='1.5' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='39.3'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680393' name='grain size' label='' min='2.0' max='1000.0' bdresolution='0.1' automationEnabled='false' value='16.4'>
      <line name='' version='2' max='1000.0' min='2.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='16.4'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680395' name='grain envelope' 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='1712680397' name='grain speed' label='' min='0.0' max='3.0' bdresolution='0.0001' automationEnabled='false' value='0.7223'>
      <line name='' version='2' max='3.0' min='0.0' bdresolution='0.0001' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.7223'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680399' name='grain random position' label='' min='0.0' max='500.0' bdresolution='0.1' automationEnabled='false' value='48.9'>
      <line name='' version='2' max='500.0' min='0.0' bdresolution='0.1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='48.9'/>
      </line>
    </parameter>
    <parameter uniqueId='1712680401' name='grain envelope window' label='' min='0.0' max='2.0' bdresolution='1' automationEnabled='false' value='0.0'>
      <line name='' version='2' max='2.0' min='0.0' bdresolution='1' color='-8355712' rightBound='false' endPointsLinked='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
  </parameterList>
  <presetGroup name='Presets'/>
  <opcodeList>
    <udo>
      <opcodeName>sampleONCE</opcodeName>
      <outTypes>i</outTypes>
      <inTypes>S</inTypes>
      <codeBody>Sfile xin

itable	chnget	Sfile
if (itable == 0) then
    itable   ftgen 0, 0, 0, 1, Sfile, 0, 0, 0
	chnset	itable, Sfile
endif
print itable
    xout    itable</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_Pfield</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>ik</inTypes>
      <codeBody>ipfield, kvalue  xin                                                            ; choose pfield &amp; value

if (p(ipfield) == -1) then                                                      ; -1 is the switch number
    kfield    =   kvalue                                                        ; if -1 then follow the values of the Automation Line
else                            
    kfield =  p(ipfield)                                                        ; if any other value than -1, take the value from the pfiled in the score
endif

   xout    kfield</codeBody>
      <comments>take in a p-field and the value for it.

if -1 is set for that particular p-field in the score, then Blue will put the Automation Line Point value in its place.
If not -1, then that p-field value will be used.

example of score:
i1 0 1 -1 .09           ; -1 for p4, so Automation Line Point replaces frequency setting
i1 1.2 2 100 -1         ; -1 for p5, so Automation Line Point replaces volume setting</comments>
    </udo>
    <udo>
      <opcodeName>adsr140_calc_coef</opcodeName>
      <outTypes>k</outTypes>
      <inTypes>kk</inTypes>
      <codeBody>  
  knum_samps, kratio xin
  xout exp( -log((1.0 + kratio) / kratio) / knum_samps)
    
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>adsr140</opcodeName>
      <outTypes>a</outTypes>
      <inTypes>aakkkk</inTypes>
      <codeBody>agate, aretrig, kattack, kdecay, ksustain, krelease xin
kstate init 0  ; 0 = attack, 1 = decay, 2 = sustain
klasttrig init -1
kval init 0.0
asig init 0
kindx = 0
kattack_base init 0
kdecay_base init 0
krelease_base init 0
kattack_samps init 0
kdecay_samps init 0
krelease_samps init 0
kattack_coef init 0
kdecay_coef init 0
ksustain_coef init 0
klast_attack init -1
klast_decay init -1
klast_release init -1
if (klast_attack != kattack) then
  klast_attack = kattack
  if(kattack &gt; 0) then
    kattack_samps = kattack * sr
    kattack_coef = adsr140_calc_coef(kattack_samps, 0.3)
    kattack_base = (1.0 + 0.3) * (1 - kattack_coef)
  else 
    kattack_samps = 0 
    kattack_coef = 0 
    kattack_base = 0 
  endif
endif
if (klast_decay != kdecay) then
  klast_decay = kdecay
  kdecay_samps = kdecay * sr
  kdecay_coef = adsr140_calc_coef(kdecay_samps, 0.0001)
  kdecay_base = (ksustain - 0.0001) * (1.0 - kdecay_coef)
endif
if (klast_release != krelease) then
  klast_release = krelease
  krelease_samps = krelease * sr
  krelease_coef = adsr140_calc_coef(krelease_samps, 0.0001)
  krelease_base =  -0.0001 * (1.0 - krelease_coef)
endif
while (kindx &lt; ksmps) do
  if (agate[kindx] &gt; 0) then
    kretrig = aretrig[kindx]
    if (kretrig &gt; 0 &amp;&amp; klasttrig &lt;= 0) then
      kstate = 0
    endif
    klasttrig = kretrig
    if (kstate == 0) then
      if(kattack &lt;= 0) then
        kval = 1.0
        kstate = 1
      else
        kval = kattack_base + (kval * kattack_coef)
        if(kval &gt;= 1.0) then
          kval = 1.0
          kstate = 1
        endif
        asig[kindx] = kval
      endif
    elseif (kstate == 1) then
      kval = kdecay_base + (kval * kdecay_coef)
      if(kval &lt;= ksustain) then
        kval = ksustain
        kstate = 2
      endif
      asig[kindx] = kval 
    else
      asig[kindx] = ksustain
    endif
  else ; in a release state
    kstate = 0
    if (kval == 0.0) then
      asig[kindx] = 0
    else 
    ; releasing
      kval = krelease_base + (kval * krelease_coef)
    if(kval &lt;= 0.0) then
      kval = 0.0
    endif
    asig[kindx] = kval  
    endif
  endif
  kindx += 1
od
xout asig
</codeBody>
      <comments></comments>
    </udo>
    <udo>
      <opcodeName>k_SCORE_format_Sampler</opcodeName>
      <outTypes>ii</outTypes>
      <inTypes>iii</inTypes>
      <codeBody>iscore, ipitch, iamp  xin

if (iscore == 0) then                                                           ; frequency mode
    ipitch  *=  .0038222
;print ipitch
else
    ipitch = semitone(ipitch - 48)

endif

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