summaryrefslogtreecommitdiff
path: root/examples-xml/midichn_advanced.csd.xml
blob: 5a3f5e22b8a7051df9f77a263fb3d3d058a279b0 (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
<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>
-odac -F midichn_advanced.mid <emphasis role="comment">;;;realtime audio out with MIDI file input</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midichn_advanced.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> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="ohdr">0dbfs</emphasis>  <emphasis role="op">=</emphasis> 1

	<emphasis role="ohdr">massign</emphasis>  1, 1		<emphasis role="comment">; all channels use instr 1</emphasis>
	<emphasis role="ohdr">massign</emphasis>  2, 1
	<emphasis role="ohdr">massign</emphasis>  3, 1
	<emphasis role="ohdr">massign</emphasis>  4, 1
	<emphasis role="ohdr">massign</emphasis>  5, 1
	<emphasis role="ohdr">massign</emphasis>  6, 1
	<emphasis role="ohdr">massign</emphasis>  7, 1
	<emphasis role="ohdr">massign</emphasis>  8, 1
	<emphasis role="ohdr">massign</emphasis>  9, 1
	<emphasis role="ohdr">massign</emphasis> 10, 1
	<emphasis role="ohdr">massign</emphasis> 11, 1
	<emphasis role="ohdr">massign</emphasis> 12, 1
	<emphasis role="ohdr">massign</emphasis> 13, 1
	<emphasis role="ohdr">massign</emphasis> 14, 1
	<emphasis role="ohdr">massign</emphasis> 15, 1
	<emphasis role="ohdr">massign</emphasis> 16, 1

gicnt	<emphasis role="op">=</emphasis>  0		<emphasis role="comment">; note counter</emphasis>

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

gicnt	<emphasis role="op">=</emphasis>  gicnt <emphasis role="op">+</emphasis> 1	<emphasis role="comment">; update note counter</emphasis>
kcnt	<emphasis role="opc">init</emphasis> gicnt	<emphasis role="comment">; copy to local variable</emphasis>
ichn	<emphasis role="opc">midichn</emphasis>		<emphasis role="comment">; get channel number</emphasis>
istime	<emphasis role="opc">times</emphasis>		<emphasis role="comment">; note-on time</emphasis>

	<emphasis role="octrl">if</emphasis> (ichn <emphasis role="op">></emphasis> 0.5) <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">l2</emphasis>		<emphasis role="comment">; MIDI note</emphasis>
	<emphasis role="opc">printks</emphasis> "note <emphasis role="op">%</emphasis>.0f (time <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.2f) was activated from the score\\n", \
		3600, kcnt, istime
	<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">l1</emphasis>
<emphasis role="olabel">l2</emphasis><emphasis role="op">:</emphasis>
	<emphasis role="opc">printks</emphasis> "note <emphasis role="op">%</emphasis>.0f (time <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.2f) was activated from channel <emphasis role="op">%</emphasis>.0f\\n", \
		3600, kcnt, istime, ichn
<emphasis role="olabel">l1</emphasis><emphasis role="op">:</emphasis>

icps	<emphasis role="opc">cpsmidi</emphasis>		<emphasis role="comment">; convert midi note to pitch</emphasis>
kenv	<emphasis role="opc">madsr</emphasis>	0.1, 0, 0.8, 0.9
asig	<emphasis role="opc">pluck</emphasis>	kenv, icps, icps, 1, 1	 
	<emphasis role="opc">outs</emphasis>	asig, asig
	 
<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="comment">;beats per minute</emphasis>

<emphasis role="stamnt">f</emphasis> 0 8		<emphasis role="comment">;stay active for 8 seconds</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1	<emphasis role="comment">;sine</emphasis>

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