fluidOut
Outputs sound from a given fluidEngine.
Syntax
aleft, aright fluidOut ienginenum
Plugin opcode in fluidOpcodes. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins
Initialization
ienginenum -- engine number assigned from fluidEngine
aleft -- Left channel audio output.
aright -- Right channel audio output.
Invoke fluidOut in an instrument definition numbered higher than any fluidcontrol instrument definitions. All SoundFonts used in the fluidEngine numbered ienginenum send their audio output to this one opcode. Send a note with an indefinite duration to this instrument to turn the SoundFonts on for as long as required.
Examples
Here is an example of the fluidOut opcode with two fluidOuts. It uses the file fluidOut.csd, 01hpschd.sf2 and 22Bassoon.sf2.
Example of the fluidOut opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
;-o fluidOut.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
giengine1 fluidEngine
; soundfont path to manual/examples
isfnum1 fluidLoad "01hpschd.sf2", giengine1, 1
fluidProgramSelect giengine1, 1, isfnum1, 0, 0
giengine2 fluidEngine
; soundfont path to manual/examples
isfnum2 fluidLoad "22Bassoon.sf2", giengine2, 1
fluidProgramSelect giengine2, 1, isfnum2, 0, 70
instr 1
mididefault 60, p3
midinoteonkey p4, p5
ikey init p4
ivel init p5
fluidNote giengine1, 1, ikey, ivel
endin
instr 2
mididefault 60, p3
midinoteonkey p4, p5
ikey init p4
ivel init p5
fluidNote giengine2, 1, ikey, ivel
endin
instr 98
imvol init 7
asigl, asigr fluidOut giengine1
outs asigl*imvol, asigr*imvol
endin
instr 99
imvol init 4
asigl, asigr fluidOut giengine2 ;add a stereo flanger
adelL linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time =20ms
adelR linseg 0.02, p3*.5, 0, p3*.5, 0.02 ;max delay time =20ms
asigL flanger asigl, adelL, .6
asigR flanger asigr, adelR, .6
outs asigL*imvol, asigR*imvol
endin
</CsInstruments>
<CsScore>
i 1 0 2 60 100 ;play one note of instr 1
i 2 2 2 60 100 ;play another note of instr 2 and...
i 98 0 60 ;play virtual keyboard for 60 sec.
i 99 0 60
e
</CsScore>
</CsoundSynthesizer>
|
The output should include lines like these:
chnl 1 using instr 1
chnl 2 using instr 2
SoundFont: 1 Bank: 0 Preset: 0 Harpsichord I-8
SoundFont: 1 Bank: 0 Preset: 70 Ethan Bassoon mono
See also
Soundfonts
More information on soundfonts is in the Floss Manuals: https://flossmanual.csound.com/midi/reading-midi-files
For other information on soundfonts look in the Wikipedia: http://en.wikipedia.org/wiki/Soundfont
Credits
Michael Gogins (gogins at pipeline dot com), Steven Yi. Thanks to Peter Hanappe for Fluidsynth.
New in Csound5.00