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
|
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac -F midichn_advanced.mid ;;;reatime audio out and midifile in
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fluidEngine.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
; LOAD SOUNDFONTS
gienginenum1 fluidEngine
gienginenum2 fluidEngine
isfnum1 fluidLoad "sf_GMbank.sf2", gienginenum1, 1
; Piano 2, program 1, channel 1
fluidProgramSelect gienginenum1, 1, isfnum1, 0, 1
; Piano 3, program 2, channel 2
fluidProgramSelect gienginenum1, 2, isfnum1, 0, 2
isfnum2 fluidLoad "19Trumpet.sf2", gienginenum2, 1
; Trumpet, program 56, channel 3
fluidProgramSelect gienginenum2, 3, isfnum2, 0, 56
;Look for midifile in folder manual/examples
;"midichn_advanced.mid" sends notes to the soundfonts
instr 1 ; GM soundfont
; INITIALIZATION
mididefault 60, p3 ; Default duration of 60 -- overridden by score.
midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 1
ikey = p4
ivelocity = p5
fluidNote gienginenum1, ichannel, ikey, ivelocity
endin
instr 2 ; GM soundfont
; INITIALIZATION
mididefault 60, p3 ; Default duration of 60 -- overridden by score.
midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 2
ikey = p4
ivelocity = p5
fluidNote gienginenum1, ichannel, ikey, ivelocity
endin
instr 3 ; Trumpet
; INITIALIZATION
mididefault 60, p3 ; Default duration of 60 -- overridden by score.
midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 3
ikey = p4
ivelocity = p5
fluidNote gienginenum2, ichannel, ikey, ivelocity
endin
; COLLECT AUDIO FROM ALL SOUNDFONTS
instr 100 ; Fluidsynth output
iamplitude1 = 7
iamplitude2 = 7
; AUDIO
aleft1, aright1 fluidOut gienginenum1
aleft2, aright2 fluidOut gienginenum2
outs (aleft1 * iamplitude1) + (aleft2 * iamplitude2), \
(aright1 * iamplitude1) + (aright2 * iamplitude2)
endin
</CsInstruments>
<CsScore>
i 1 0 3 60 100
i 2 1 3 60 100
i 3 3 3 63 100
i 100 0 10 ;run for 10 seconds
e
</CsScore>
</CsoundSynthesizer>
|