File: vi.csd

package info (click to toggle)
csound 1%3A6.18.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 63,220 kB
  • sloc: ansic: 192,643; cpp: 14,149; javascript: 9,654; objc: 9,181; python: 3,376; java: 3,337; sh: 1,840; yacc: 1,255; xml: 985; perl: 635; lisp: 411; tcl: 341; lex: 217; makefile: 128
file content (100 lines) | stat: -rw-r--r-- 2,413 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
;vi

<CsoundSynthesizer>

<CsOptions>
-odac -dm3
</CsOptions>

<CsInstruments>
sr 		    = 		48000
ksmps 		= 		48
nchnls 		= 		2
0dbfs 		= 		1


gasendL		init		0
gasendR		init		0
		seed		0
		alwayson	"read_channels"	
		alwayson	"rescale_controls"		
		alwayson	"trigger_6_notes"
		alwayson	"reverb"

		instr		read_channels
gkslider1	chnget		"slider1"
		chnset		(0.15-0.01)/(1-0.01),"slider1"
gkslider2	chnget		"slider2"
		chnset		(0-(-1))/(2-(-1)),"slider2"
gkslider3	chnget		"slider3"
		chnset		(1-0.01)/(2-0.01),"slider3"
gkslider4	chnget		"slider4"
		chnset		(1-0.5)/(10-0.5),"slider4"
gkslider5	chnget		"slider5"
		chnset		1,"slider5"
gktrackpadx	chnget		"trackpad.x"
		chnset		0.6,"trackpad.x"
gktrackpady	chnget		"trackpad.y"
		chnset		(0.85-0.5)/(1-0.5),"trackpad.y"
		endin

		instr		rescale_controls
gkDamping	scale		gkslider1,1,0.01
gkOctaveShift	scale		gkslider2,2,-1
gkSpread	scale		gkslider3,2,0.01
gkDensity	scale		gkslider4,10,0.5
gkNStrings	scale		gkslider5,6,1
gkRvbMix	scale		gktrackpadx,1,0
gkRvbSize	scale		gktrackpady,1,0.4
		endin

		instr		trigger_6_notes
icount		=		1
inotes		ftgen		0,0,-6,-2,40,45,50,55,59,64	; starting notes
loop:
inote		table		icount-1,inotes
		event_i		"i", "string", 0, (60*6)+25, inote, icount
		loop_le		icount,1,6,loop
krate		rspline		0.005, 0.15, 0.1, 0.2
ktrig		metro		krate*gkDensity
		if ktrig=1 then
		reinit 		update
		endif	
update:
aenv		expseg		0.0001, 0.02, 1, 0.2, 0.0001, 1, 0.0001
apluck		pinkish		aenv
		rireturn	
koct		randomi		5, 10, 2
gapluck		butlp		apluck, cpsoct(koct)
endin

		instr		string
adlt		rspline		50, 250, 0.03, 0.06
apluck		vdelay3		gapluck, adlt*gkSpread, 600
adtn		jspline		15, 0.002, 0.02
astring		wguide1		apluck, cpsmidinn(p4)*semitone(adtn)*octave(gkOctaveShift), (sr/2)*gkDamping, 0.9995
astring		dcblock		astring
kOnOff		=		(gkNStrings>=p5?1:0)	; check if this voice should be active
kOnOff		port		kOnOff,0.5		; smooth on/off amplitude switch for this voice
aOnOff		interp		kOnOff			; interpolate to create a-rate amplitude switch (prevents quantisation noise) 
kpan		rspline		0, 1, 0.1, 0.2
astrL, astrR	pan2		astring*aOnOff, kpan
		outs		astrL, astrR
gasendL		=		gasendL+(astrL*gkRvbMix)
gasendR		=		gasendR+(astrR*gkRvbMix)
		endin

		instr		reverb
aL, aR		reverbsc	gasendL, gasendR, gkRvbSize, 10000
		outs		aL, aR
		clear		gasendL, gasendR
		endin

</CsInstruments>

<CsScore>
f 0 3600
e
</CsScore>

</CsoundSynthesizer>