fluidNote

fluidNote — Plays a note on a channel in a fluidSynth engine.

Syntax

fluidNote ienginenum, ichannelnum, imidikey, imidivel

Description

Plays a note at imidikey pitch and imidivel velocity on ichannelnum channel of number ienginenum fluidEngine.

Initialization

ienginenum -- engine number assigned from fluidEngine

ichannelnum -- which channel number to play a note on in the given fluidEngine

imidikey -- MIDI key for note (0-127)

imidivel -- MIDI velocity for note (0-127)

Examples

sr = 44100
kr = 4410
ksmps = 10  
nchnls = 2
0dbfs = 32767

; LOAD SOUNDFONTS

fluidload	"Piano Steinway Grand Model C (21,738KB).sf2", 1, 1, 1 ; Bright Steinway, program 1, channel 1
fluidload	"Piano Steinway Grand Model C (21,738KB).sf2", 2, 3, 1 ; Concert Steinway with reverb, program 2, channel 3
fluidload	"63.3mg The Sound Site Album Bank V1.0.SF2",  50, 2, 1 ; General MIDI, program 50, channel 2

; SEND NOTES TO STEINWAY SOUNDFONT

instr 1 ; FluidSynth Steinway Rev
; 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
istatus            =                            144
                   fluidcontrol                 istatus, ichannel, ikey, ivelocity
endin

; COLLECT AUDIO FROM ALL SOUNDFONTS

instr 100 ; Fluidsynth output
; INITIALIZATION
; Normalize so iamplitude for p5 of 80 == ampdb(80).
iamplitude         =                           ampdb(p5) * (10000.0 / 0.1)  
; AUDIO
aleft, aright      fluidNote
                   outs                        aleft * iamplitude, aright * iamplitude
endin

Credits

Michael Gogins (gogins at pipeline dot com), Steven Yi. Thanks to Peter Hanappe for Fluidsynth.