summaryrefslogtreecommitdiff
path: root/examples-xml/grain2.csd.xml
blob: 9aa4f347dd7081203852b2a6911fae6065ba077b (plain)
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
101
102
103
104
105
106
107
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
<emphasis role="comment">; Audio out   Audio in    No messages</emphasis>
-odac           -iadc     -d     <emphasis role="comment">;;;RT audio I/O</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o grain2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>

<emphasis role="ohdr">sr</emphasis>	<emphasis role="op">=</emphasis>  48000
<emphasis role="ohdr">kr</emphasis>	<emphasis role="op">=</emphasis>  750
<emphasis role="ohdr">ksmps</emphasis>	<emphasis role="op">=</emphasis>  64
<emphasis role="ohdr">nchnls</emphasis>	<emphasis role="op">=</emphasis>  2

<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> square wave <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
i_	<emphasis role="ohdr">ftgen</emphasis> 1, 0, 4096, 7, 1, 2048, 1, 0, <emphasis role="op">-</emphasis>1, 2048, <emphasis role="op">-</emphasis>1
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> window <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
i_	<emphasis role="ohdr">ftgen</emphasis> 2, 0, 16384, 7, 0, 4096, 1, 4096, 0.3333, 8192, 0
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> sine wave <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
i_	<emphasis role="ohdr">ftgen</emphasis> 3, 0, 1024, 10, 1
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> room parameters <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
i_	<emphasis role="ohdr">ftgen</emphasis> 7, 0, 64, <emphasis role="op">-</emphasis>2, 4, 50, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 11,			\
			    1, 26.833, 0.05, 0.85, 10000, 0.8, 0.5, 2,	\
			    1,  1.753, 0.05, 0.85,  5000, 0.8, 0.5, 2,	\
			    1, 39.451, 0.05, 0.85,  7000, 0.8, 0.5, 2,	\
			    1, 33.503, 0.05, 0.85,  7000, 0.8, 0.5, 2,	\
			    1, 36.151, 0.05, 0.85,  7000, 0.8, 0.5, 2,	\
			    1, 29.633, 0.05, 0.85,  7000, 0.8, 0.5, 2

ga01	<emphasis role="opc">init</emphasis> 0

<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> generate bandlimited square waves <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>

i0	<emphasis role="op">=</emphasis>  0
<emphasis role="olabel">loop1</emphasis><emphasis role="op">:</emphasis>
imaxh	<emphasis role="op">=</emphasis>  <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
i_	<emphasis role="ohdr">ftgen</emphasis> i0 <emphasis role="op">+</emphasis> 256, 0, 4096, <emphasis role="op">-</emphasis>30, 1, 1, imaxh
i0	<emphasis role="op">=</emphasis>  i0 <emphasis role="op">+</emphasis> 1
	<emphasis role="octrl">if</emphasis> (i0 <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop1</emphasis>

	<emphasis role="oblock">instr</emphasis> 1

p3	<emphasis role="op">=</emphasis>  p3 <emphasis role="op">+</emphasis> 0.2

<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> note velocity <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
iamp	<emphasis role="op">=</emphasis>  0.0039 <emphasis role="op">+</emphasis> p5 <emphasis role="op">*</emphasis> p5 <emphasis role="op">/</emphasis> 16192
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> <emphasis role="opc">vibrato</emphasis> <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kcps	<emphasis role="opc">oscili</emphasis> 1, 8, 3
kenv	<emphasis role="opc">linseg</emphasis> 0, 0.05, 0, 0.1, 1, 1, 1
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> frequency <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kcps	<emphasis role="op">=</emphasis>  (kcps <emphasis role="op">*</emphasis> kenv <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 1) <emphasis role="op">*</emphasis> 440 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> (p4 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12)
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> <emphasis role="opc">grain</emphasis> ftable <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kfn	<emphasis role="op">=</emphasis>  <emphasis role="opc">int</emphasis>(256 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 0.5 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> <emphasis role="opc">grain</emphasis> duration <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kgdur	<emphasis role="opc">port</emphasis> 100, 0.1, 20
kgdur	<emphasis role="op">=</emphasis>  kgdur <emphasis role="op">/</emphasis> kcps

a1	<emphasis role="opc">grain2</emphasis> kcps, kcps <emphasis role="op">*</emphasis> 0.02, kgdur, 50, kfn, 2, <emphasis role="op">-</emphasis>0.5, 22, 2
a1	<emphasis role="opc">butterlp</emphasis> a1, 3000
a2	<emphasis role="opc">grain2</emphasis> kcps, kcps <emphasis role="op">*</emphasis> 0.02, 4 <emphasis role="op">/</emphasis> kcps, 50, kfn, 2, <emphasis role="op">-</emphasis>0.5, 23, 2
a2	<emphasis role="opc">butterbp</emphasis> a2, 12000, 8000
a2	<emphasis role="opc">butterbp</emphasis> a2, 12000, 8000
aenv1	<emphasis role="opc">linseg</emphasis> 0, 0.01, 1, 1, 1
aenv2	<emphasis role="opc">linseg</emphasis> 3, 0.05, 1, 1, 1
aenv3	<emphasis role="opc">linseg</emphasis> 1, p3 <emphasis role="op">-</emphasis> 0.2, 1, 0.07, 0, 1, 0

a1	<emphasis role="op">=</emphasis>  aenv1 <emphasis role="op">*</emphasis> aenv3 <emphasis role="op">*</emphasis> (a1 <emphasis role="op">+</emphasis> a2 <emphasis role="op">*</emphasis> 0.7 <emphasis role="op">*</emphasis> aenv2)

ga01	<emphasis role="op">=</emphasis>  ga01 <emphasis role="op">+</emphasis> a1 <emphasis role="op">*</emphasis> 10000 <emphasis role="op">*</emphasis> iamp

	<emphasis role="oblock">endin</emphasis>

<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> output <emphasis role="oblock">instr</emphasis> <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>

	<emphasis role="oblock">instr</emphasis> 81

i1	<emphasis role="op">=</emphasis>  0.000001
aLl, aLh, aRl, aRh	<emphasis role="opc">spat3di</emphasis> ga01 <emphasis role="op">+</emphasis> i1<emphasis role="op">*</emphasis>i1<emphasis role="op">*</emphasis>i1<emphasis role="op">*</emphasis>i1, 3.0, 4.0, 0.0, 0.5, 7, 4
ga01	<emphasis role="op">=</emphasis>  0
aLl	<emphasis role="opc">butterlp</emphasis> aLl, 800.0
aRl	<emphasis role="opc">butterlp</emphasis> aRl, 800.0

	<emphasis role="opc">outs</emphasis> aLl <emphasis role="op">+</emphasis> aLh, aRl <emphasis role="op">+</emphasis> aRh

	<emphasis role="oblock">endin</emphasis>


<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>

<emphasis role="stamnt">t</emphasis> 0 60

<emphasis role="stamnt">i</emphasis> 1 0.0 1.3 60 127
<emphasis role="stamnt">i</emphasis> 1 2.0 1.3 67 127
<emphasis role="stamnt">i</emphasis> 1 4.0 1.3 64 112
<emphasis role="stamnt">i</emphasis> 1 4.0 1.3 72 112

<emphasis role="stamnt">i</emphasis> 81 0 6.4

<emphasis role="stamnt">e</emphasis>


<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting>