notnum — Get a note number from a MIDI event.
Here is an example of the notnum opcode. It uses the file notnum.csd.
Example 244. Example of the notnum opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in No messages MIDI in
-odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
; For Non-realtime ouput leave only the line below:
; -o notnum.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
i1 notnum
print i1
endin
</CsInstruments>
<CsScore>
; Play Instrument #1 for 12 seconds.
i 1 0 12
e
</CsScore>
</CsoundSynthesizer>
Here is an example of the notnum opcode used to produce audio output. It uses the file notnum_complex.csd
Example 245. Complex example of the notnum opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in No messages MIDI in
-odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 10
nchnls = 2
; Set MIDI channel 1 to play instr 1.
massign 1, 1
instr 1
; Returns MIDI note number - an integer in range (0-127)
iNum notnum
; Convert MIDI note number to Hz
iHz = (440.0*exp(log(2.0)*((iNum)-69.0)/12.0))
; Generate audio by indexing a table; fixed amplitude.
aosc oscil 10000, iHz, 1
; Since there is no enveloping, there will be clicks.
outs aosc, aosc
endin
</CsInstruments>
<CsScore>
; Generate a Sine-wave to be indexed at audio rate
; by the oscil opcode.
f1 0 16384 10 1
; Keep the score "open" for 1 hour so that MIDI
; notes can allocate new note events, arbitrarily.
f0 3600
e
</CsScore>
</CsoundSynthesizer>