You are here

Add new comment

rncbc's picture

I think you're messing up the "bank" concept here.

Let's stick that Soundfonts have several addressable instruments (not channels). Each of those instruments is addressed by a bank number and a program number. The bank+program paired number do correspond to MIDI bank and program numbers, respectively forming what might be called a preset.

Now, one single Qsynth/fluidsynth engine has 16 MIDI addressable channels. For each engine channel you may assign one instrument or soundfont preset. No more, no less. That assignment can be done through the Qsynth Channels user interface or via plain MIDI Bank-Select (CC#0) + MIDI Program-Change (PC#) message events.

As Qsynth/fluidsynth allows you to load several soundfonts stacked into one engine, you may end with overridden preset addresses (bank+program). There's where bank-offsets come into play and practice, to let you manage bank numbers effectively besides their original hard-coded values. IOW, to let you discriminate duplicated preset addresses and make earlier loaded soundfont presets get seen and heard ;)