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"><CsoundSynthesizer></emphasis>
<emphasis role="csdtag"><CsOptions></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"></CsOptions></emphasis>
<emphasis role="csdtag"><CsInstruments></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"></CsInstruments></emphasis>
<emphasis role="csdtag"><CsScore></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"></CsScore></emphasis>
<emphasis role="csdtag"></CsoundSynthesizer></emphasis>
</programlisting>
|