/* Andrew Ikenberry
aikenberry@berklee.edu
3-13-2012
Note List Composition "Spaces"
*/

<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 1
nchnls = 2



gaverb init 0
gaverbmed init 0
gaverbvar init 0
gadelay init 0




;basic FM instrument
instr 1
idur = p3
iamp = p4
ifrq = cpspch(p5)
ifun = p6
iatk = p7
irel = p8
icar = p9
imod = p10
index1 = p11
index2 = p12
iverbsend = p13
isigL = p14
isigR = p15
iverbsendmed = p16
iverbvar = p17
idelaysend = p18
kindexswp line index1, idur, index2
kenv linen iamp, iatk, idur, irel
asig foscil kenv, ifrq, icar, imod, kindexswp, ifun
outs asig*isigL, asig*isigR
gaverb = gaverb +(asig*iverbsend)
gaverbmed = gaverbmed + (asig*iverbsendmed)
gaverbvar = gaverbvar + (asig*iverbvar)
gadelay = gadelay + (asig*idelaysend)
endin


;FM instrument wih AM 
instr 2
idur = p3
iamp = p4
ifrq1 = cpspch(p5)
ifrq2 = cpspch(p6)
ifun = p7
iatk = p8
irel = p9
icar = p10
imod = p11
index1 = p12
index2 = p13
ilfofrq = p14
ilfoamp = p15
ipanlfofrq = p16		;frq of panning
iverbvarsnd = p17		;reverb with variable env amount
iverbsnd = p18
idelaysend = p19
kfrqswp expseg ifrq1, idur/2, ifrq2, idur/2, ifrq1
kindexswp expon index1, idur, index2
kenv linen iamp, iatk, idur, irel
klfo oscil ilfoamp*kenv, ilfofrq, 1
kpanlfo oscil 1, ipanlfofrq, 1
asig foscil klfo, kfrqswp, icar, imod, kindexswp, ifun
outs (asig*kpanlfo), (asig*(1-kpanlfo))
gaverbvar = gaverbvar +(asig*iverbvarsnd)
gaverb = gaverb + (asig*iverbsnd)
gadelay = gadelay + (asig*idelaysend)
endin 





;Hall Reverb
instr 3
idur = p3
irt60 = p4
ifc = p5
iverbL = p6
iverbR = p7
kenv linen 1, .01, idur, .1
averb, averb reverbsc gaverb, gaverb, irt60, ifc
outs (averb*iverbL)*kenv, (averb*iverbR)*kenv
gaverb = 0
endin

;med reverb
instr 4
idur = p3
irt60 = p4
ifc = p5
iverbL = p6
iverbR = p7
kenv linen 1, .01, idur, 1
averb, averb reverbsc gaverbmed, gaverbmed, irt60, ifc
outs (averb*iverbL)*kenv, (averb*iverbR)*kenv
gaverbmed = 0
endin

;reverb with variable envelope
instr 5
idur = p3
irt60 = p4
ifc = p5
iatk = p6
irel = p7
ipanfrq1 = p8
ipanfrq2 = p9
idur1  = p10
iatk2 = p11
idur2 = p12
kenv linseg 0, 2.73, 0,  iatk, 3, idur1, 1, 2.5, .02, .3, .02,  iatk2, 3, idur2, 2, irel, 0		;variable envelope
kpanfrqswp line ipanfrq1, idur, ipanfrq2
kpan oscil .5, kpanfrqswp, 1
kpanlfo = kpan+.5 
averb, averb reverbsc gaverbvar, gaverbvar, irt60, ifc
outs (averb*kpanlfo)*kenv, (averb*(1-kpanlfo))*kenv
gaverbvar = 0
endin


;delay
instr 6
idlytime = p4
idlyL = p5
idlyR = p6
ilptime = p7
adelay comb gadelay, idlytime, ilptime
outs adelay*idlyL, adelay*idlyR
gadelay = 0
endin





</CsInstruments>
<CsScore>

f1 0 4096  10 1 	;sine wave 





;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  SECTION I   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;instr	str	dur	rt60	fc		verbL		verbR
i	3	0	38	0.93	20000		1		1


;instr	str	dur	rt60	fc		verbL		verbR
i	4	0	38	.7	20000		1		1


	
;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1	index2	verbhall	sigL	sigR	  verbmed
i	1	0	9.15	5000	1.4	1	5	.01	1	11.3	0		3		0		1	1		0 0

i	1	0	9.15	5000	.4	1	5	.01	1	11.3	0		3		0		1	1		0 0

i	1	9.2	.08	3000	6	1	.01	.01	1	2.1	20		20		0		1	0		0 0

i	1	9.3	.08	3000	7	1	.01	.01	1	11.2	100		100		0		0	1		0 0  

i	1	9.4	.08	3000	8	1	.01	.01	1	2.1	400		400		0		1	0		0 0

i	1	9.5	.08	3000	9	1	.01	.01	1	2.1	3		3		.4		1	1		0 0

i	1	13	.1	3000	9	1	.01	.01	1	2.3	8		8		0.07		1	0		.23 0

i	1	13.6	.1	2800	8.7	1	.01	.01	1	3.1	13		13		0		.8	.2		.1 0

i	1	13.7	.09	2900	8.5	1	.01	.01	1	2.	50		50		0		.6	.4		.01 0

i	1	13.8	.7	3000	8.3	1	.01	.01	1	5.2	1		9		0		0	1		0 0


;instr	strt	dur	rt60		fc	atk	rel	panfrq1	panfrq2	idur1		iatk2		idur2		

i	5	17	26	1		20000  .05	10.7	.1		11		.5		7		3	


;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1	index2	verbhall	sigL	sigR	verbmed var

i	1	19.37	.1	3000	8.3	1	.01	3	1	5.2	9		9		0		1	0	  .018    1

i	1	19.37	.09	3000	9	1	.01	3	1	2.1	1		1		0		1	0	  .018    1	

i	1	19.37	.09	3000	9	1	.01	3	1	2	1		1		0		1	0	  .018    1	
;instr	strt	dur	amp	frq1	frq2	fun	atk	rel	car	mod	index1   index2	lfofrq  lfoamp  panfrq  var  verb

i	2	17	2.3	800	10	1	1	.01	.01	1	9.1	1		3	8		8	.3	0	0





;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1   index2	verbhall	sigL	sigR	  verbmed   var
i	1	24.5	13	900	1.4	1	5	2	1	11.3	0		10		0	1	1	    0        1

;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1	index2	verbhall	sigL	sigR	  verbmed
i	1	33	10	9000	1.4	1	5	.01	1	11.3	0		3		0		1	1		0 0

s

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   SECTION II    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;instr	str	dur	rt60	fc		verbL		verbR
i	3	0	70	0.93	20000		1		1


;instr	str	dur	rt60	fc		verbL		verbR
i	4	0	50	.7	20000		0		1


;instr	str	dur	time	dlyL	dlyR	lptime
i 6		0	50	4	1	0	.12
      
;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1   index2	verbhall	sigL	sigR	  verbmed   var

i	1	.1	.08	3000	6	1	.01	.01	1	2.1	20		20		0		1	0	0	0 0

i	1	.2	.08	3000	7	1	.01	.01	1	11.2	100		100		0		0	1	0	0 0  

i	1	.3	.08	3000	8	1	.01	.01	1	2.1	400		400		0		1	0	0	0 0

i	1	.4	.08	3000	9	1	.01	.01	1	2.1	3		3		0		1	1	0.1	0 0



;instr	strt	dur	rt60		fc	atk	rel	panfrq1	panfrq2	idur1		iatk2		idur2	

i	5	2.89	13	1		10000  .1	3	.1		.1		1		.1		3


;instr   strt  dur  amp frq	fun	atk	rel	car	mod	index1   index2	verbhall	sigL	sigR	  verbmed   var   dly


i1	  2	.08	3000	9	1	.01	.01	1	2.3	  8		8		0     	1	0	1    0.3    0

i1	  2	.08	3000	7	1	.01	.01	1	2	  2		2		0     	1	0	1   0.3    0.2



i1	 2.1	.12	2800	8.7	1	.01	.01	1	3.1	13		13		0		.8	.2	0.5    0.3    0

i1	 2.1	.12	2800	8.3	1	.01	.01	1	3.1	100		100		0		.8	.2	0.5    0.3    0



i1	 2.83	.09	6000	8.5	1	.01	.01	1	2.	50		50		0		.6	.4	0    0.3	0



i1	2.96	.3	4000	4.3	1	.01	.01	1	5.2	1		9		0		0	1	0    1	1

i1	2.96	.3	4000	3.3	1	.01	.01	1	5.2	1		9		0.3		0	1	0    1	1




;instr	strt	dur	rt60		fc	atk	rel	panfrq1	panfrq2	idur1		iatk2		idur2	

i	5	15	13.25	1		10000  .1	3.5	.1		.1		.5		.1		2.8


;instr   strt  dur  amp frq	fun	atk	rel	car	mod	index1   index2	verbhall	sigL	sigR	  verbmed   var   dly



i1	15.5	.8	2000	1.6	1	.2	.01	1	5.2	1		4		0		1	1	0    1	3

i1	15.5	.8	1000	1.3	1	.2	.01	1	5.2	1		4		0.3		1	1	0    1	3


;instr	strt	dur	rt60		fc	atk	rel	panfrq1	panfrq2	idur1		iatk2		idur2	

i	5	28.3	30	1		10000  .1	13	.1		.1		2		.1		6


;instr	strt	dur	amp	frq	fun	atk	rel	car	mod	index1   index2	verbhall	sigL	sigR	  verbmed   var

i	1	27.2	2.1	1200	6	1	.1	.01	1	2.1	3		3		0		1	1	0	1 1


i	1	27.2	2.1	1200	5	1	.1	.01	1	2.1	3		3		0		1	1	0	1 1

i	1	27.2	2.1	1200	4	1	.1	.01	1	2.1	3		3		0.3		1	1	0	1 1



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;      END      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

</CsScore>
</CsoundSynthesizer><bsbPanel>
 <label>Widgets</label>
 <objectName/>
 <x>878</x>
 <y>61</y>
 <width>558</width>
 <height>140</height>
 <visible>true</visible>
 <uuid/>
 <bgcolor mode="nobackground">
  <r>231</r>
  <g>46</g>
  <b>255</b>
 </bgcolor>
 <bsbObject version="2" type="BSBVSlider">
  <objectName>slider1</objectName>
  <x>5</x>
  <y>5</y>
  <width>20</width>
  <height>100</height>
  <uuid>{f400c256-328e-42e2-b7d0-7ee5dab067aa}</uuid>
  <visible>true</visible>
  <midichan>0</midichan>
  <midicc>-3</midicc>
  <minimum>0.00000000</minimum>
  <maximum>1.00000000</maximum>
  <value>0.00000000</value>
  <mode>lin</mode>
  <mouseControl act="jump">continuous</mouseControl>
  <resolution>-1.00000000</resolution>
  <randomizable group="0">false</randomizable>
 </bsbObject>
</bsbPanel>
<bsbPresets>
</bsbPresets>
<MacGUI>
ioView nobackground {59367, 11822, 65535}
ioSlider {5, 5} {20, 100} 0.000000 1.000000 0.000000 slider1
</MacGUI>
