<instrument type='blue.orchestra.BlueSynthBuilder' editEnabled='false'>
  <name>NoisePerc v1.0</name>
  <comment>Author: Atte AndrÃ© Jensen (atte.dk), 2007

Percussive instrument with resonant filter and distortion.</comment>
  <globalOrc>git_noise_perc_dist	  ftgen		0,0, 257, 9, .5,1,270,1.5,.33,90,2.5,.2,270,3.5,.143,90,4.5,.111,270
</globalOrc>
  <globalSco/>
  <instrumentText>kvol	=	p4; 0-1
kfreq	=	p5; hz
irise	=	p6; secunds
ifall	=	p7; seconds
kpan	=	p8; -1(-11)=left, 1(-9)= right
ireverse=	p9; 0 or 1

; setup
igain	=	1

; defaults
irise	=	(irise == 0) ? &lt;ampEnvRise&gt; : irise
ifall	=	(ifall == 0) ? &lt;ampEnvFall&gt; : ifall
kfreq	=	(kfreq == 0) ? &lt;freq&gt; : kfreq
kvol	=	(kvol == 0) ? &lt;volume&gt; : kvol
kpan	=	(kpan &gt;= -1) ? &lt;pan&gt; : kpan + 10
ireverse=	(ireverse == 0) ? &lt;reverse&gt; : ireverse


; set from BSB
kfenvdepth =	&lt;fenvdepth&gt;
ifrise	=	&lt;filterEnvRise&gt;
iffall	=	&lt;filterEnvFall&gt;
idist	=	&lt;distortion&gt;

; calculate stuff
iamp	=	10000 * igain
kres	=	(&lt;resonance&gt; * 499) + 1

; perhaps reverse envelope
cigoto (ireverse == 1), reverse
	igoto endif_reverse
	reverse:
itmp	=	irise
irise	=	ifall
ifall	=	itmp

itmp	=	ifrise
ifrise	=	iffall
iffall	=	itmp
	endif_reverse:

; envelopes
kkeepalive linsegr 1, irise + ifall, 0
aampenv	expseg	.001, irise, 1, ifall, .001
kfreqenv linseg	0, ifrise, 1, iffall, 0

; oscillator
anoise	rand	iamp

; filter
a1, a2, afilt	svfilter	anoise, (kfreqenv * kfenvdepth * kfreq) + kfreq, kres

; distort
adist	distort	afilt, idist, git_noise_perc_dist
adist	balance	adist, anoise

; apply envelope
aout	=	adist * aampenv * kvol

; output
	blueMixerOut aout * (1 - kpan), aout * (1 + kpan)</instrumentText>
  <graphicInterface editEnabled='false'>
    <uniqueNameManager nameIndex='-1' defaultPrefix='bsbObj'/>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>volume</objectName>
      <x>233</x>
      <y>50</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>1.0</value>
      <knobWidth>60</knobWidth>
      <randomizable>false</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>242</x>
      <y>126</y>
      <label>Volume</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>41</x>
      <y>126</y>
      <label>Rise</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>190</x>
      <y>126</y>
      <label>Pan</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>105</x>
      <y>126</y>
      <label>Fall</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBCheckBox'>
      <objectName>reverse</objectName>
      <x>25</x>
      <y>365</y>
      <label>ENV Reverse</label>
      <selected>false</selected>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>43</x>
      <y>238</y>
      <label>Freq</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>ampEnvRise</objectName>
      <x>30</x>
      <y>50</y>
      <automationAllowed>false</automationAllowed>
      <minimum>1.0E-4</minimum>
      <maximum>0.01</maximum>
      <value>8.763264E-4</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>freq</objectName>
      <x>26</x>
      <y>162</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>10000.0</maximum>
      <value>8140.3135</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>pan</objectName>
      <x>170</x>
      <y>50</y>
      <automationAllowed>true</automationAllowed>
      <minimum>-1.0</minimum>
      <maximum>1.0</maximum>
      <value>0.0</value>
      <knobWidth>60</knobWidth>
      <randomizable>false</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>ampEnvFall</objectName>
      <x>93</x>
      <y>50</y>
      <automationAllowed>false</automationAllowed>
      <minimum>0.0010</minimum>
      <maximum>0.2</maximum>
      <value>0.0045997887</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>resonance</objectName>
      <x>89</x>
      <y>162</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.21214853</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>88</x>
      <y>238</y>
      <label>Resonance</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>fenvdepth</objectName>
      <x>172</x>
      <y>162</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.21516009</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>170</x>
      <y>238</y>
      <label>ENV Depth</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>filterEnvRise</objectName>
      <x>235</x>
      <y>162</y>
      <automationAllowed>false</automationAllowed>
      <minimum>1.0E-4</minimum>
      <maximum>0.01</maximum>
      <value>0.00591359</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>filterEnvFall</objectName>
      <x>298</x>
      <y>162</y>
      <automationAllowed>false</automationAllowed>
      <minimum>1.0E-4</minimum>
      <maximum>0.2</maximum>
      <value>0.054554295</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>253</x>
      <y>238</y>
      <label>Rise</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>317</x>
      <y>238</y>
      <label>Fall</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>137</x>
      <y>3</y>
      <label>&lt;html&gt;&lt;font size=&quot;6&quot;&gt;&lt;b&gt;NoisePerc&lt;/b&gt;&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>184</x>
      <y>33</y>
      <label>v 1.0</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>10</x>
      <y>170</y>
      <label>&lt;html&gt;F&lt;br&gt;I&lt;br&gt;L&lt;br&gt;T&lt;br&gt;E&lt;br&gt;R&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>10</x>
      <y>71</y>
      <label>&lt;html&gt;A&lt;br&gt;M&lt;br&gt;P&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>17</x>
      <y>143</y>
      <label>-----------------------------------------------</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>15</x>
      <y>271</y>
      <label>-----------------------------------------------</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>10</x>
      <y>300</y>
      <label>&lt;html&gt;G&lt;br&gt;L&lt;br&gt;O&lt;br&gt;B&lt;br&gt;A&lt;br&gt;L&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>distortion</objectName>
      <x>150</x>
      <y>293</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.042831022</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>153</x>
      <y>369</y>
      <label>Distortion</label>
    </bsbObject>
  </graphicInterface>
  <bsbParameterList>
    <parameter uniqueId='934795783' name='distortion' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.042831022'/>
      </line>
    </parameter>
    <parameter uniqueId='934795781' name='fenvdepth' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.21516009'/>
      </line>
    </parameter>
    <parameter uniqueId='934795775' name='freq' label='' min='0.0' max='10000.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='10000.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='8140.3135'/>
      </line>
    </parameter>
    <parameter uniqueId='934795777' name='pan' label='' min='-1.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='-1.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.0'/>
      </line>
    </parameter>
    <parameter uniqueId='934795779' name='resonance' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='0.21214853'/>
      </line>
    </parameter>
    <parameter uniqueId='934795773' name='volume' label='' min='0.0' max='1.0' resolution='-1.0' automationEnabled='false'>
      <line name='' version='2' max='1.0' min='0.0' resolution='-1.0' color='-8355712' rightBound='false'>
        <linePoint x='0.0' y='1.0'/>
      </line>
    </parameter>
  </bsbParameterList>
  <presetGroup name='Presets'/>
  <opcodeList/>
</instrument>