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

Distorted guitar with flanger.</comment>
  <globalOrc/>
  <globalSco/>
  <instrumentText>ilength	=	p3
ifreq	=	p4
ivol	=	p5

; defaults
ifreq	=	(ifreq &gt;= 20) ? ifreq : cpspch(ifreq)
kvol	=	&lt;volume&gt;

; copy from BSB
kflange =	&lt;flange&gt; * .99
kdist	=	&lt;distortion&gt; * 10 +.0001

; setup
iamp	=	18000
igain	=	100
idetune	=	.007

; envelope setup
iamp_attack =	.001
iamp_release =	.03
ifil_attack = 	.001
ifil_decay =	8
ifil_release =	.1

; envelopes
aampenv	expsegr	.0001, iamp_attack, 1, ilength - iamp_attack - iamp_release, 1, iamp_release, .0001
aampenv	=	aampenv * iamp * .0001
kfiltenv linsegr 0, ifil_attack, 1, ifil_decay, 0, ifil_release, 0

; oscillators
aosc1	pluck	25000, ifreq * 2, ifreq * 2, 0, 1
aosc2	pluck	25000, ifreq * (1 + idetune), ifreq * (1 + idetune), 0, 1
aosc3	pluck	25000, ifreq * (1 - idetune), ifreq * (1 - idetune), 0, 1

; filter
aosc1	tonex	aosc1, ifreq * 12 * kfiltenv * 2, 2
aosc2	tonex	aosc2, ifreq * 12 * kfiltenv, 2
aosc3	tonex	aosc3, ifreq * 12 * kfiltenv, 2

; mix
amixl	=	aosc1 + aosc2
amixr	=	aosc1 + aosc3

; distort
aleft	distort1 amixl, kdist, 1/kdist, .2, .4
aright	distort1 amixl, kdist, 1/kdist, .1, .5

; filter again
aleft	tone	aleft, ifreq + 4000
aright	tone	aright, ifreq  + 4000

; flanger
aflang	=	.005
afl	flanger	aleft, aflang, .4
afr	flanger	aright, aflang, .6

; mix
aoutl	=	((aleft * (1 - kflange)) + afl * kflange) * aampenv
aoutr	=	((aright * (1 - kflange)) + afr * kflange) * aampenv

aoutl	balance	aoutl, amixl
aoutr	balance	aoutr, amixr

aoutl	=	aoutl * ivol * kvol
aoutr	=	aoutr * ivol * kvol

; output
	blueMixerOut aoutl, aoutr</instrumentText>
  <graphicInterface editEnabled='false'>
    <uniqueNameManager nameIndex='-1' defaultPrefix='bsbObj'/>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>volume</objectName>
      <x>167</x>
      <y>58</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>176</x>
      <y>134</y>
      <label>Volume</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>distortion</objectName>
      <x>28</x>
      <y>58</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.9948365</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>30</x>
      <y>134</y>
      <label>Distortion</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>100</x>
      <y>134</y>
      <label>Flanger</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBKnob' version='2'>
      <objectName>flange</objectName>
      <x>91</x>
      <y>58</y>
      <automationAllowed>true</automationAllowed>
      <minimum>0.0</minimum>
      <maximum>1.0</maximum>
      <value>0.23384345</value>
      <knobWidth>60</knobWidth>
      <randomizable>true</randomizable>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>23</x>
      <y>13</y>
      <label>&lt;html&gt;&lt;font size=&quot;6&quot;&gt;&lt;b&gt;DistortionGuitar&lt;/b&gt;&lt;/font&gt;&lt;/html&gt;</label>
    </bsbObject>
    <bsbObject type='blue.orchestra.blueSynthBuilder.BSBLabel'>
      <objectName></objectName>
      <x>111</x>
      <y>39</y>
      <label>v 1.0</label>
    </bsbObject>
  </graphicInterface>
  <bsbParameterList>
    <parameter uniqueId='745984837' 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.9948365'/>
      </line>
    </parameter>
    <parameter uniqueId='745984839' name='flange' 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.23384345'/>
      </line>
    </parameter>
    <parameter uniqueId='745984835' 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>