You are here

Soundfonts with multiple banks

I may be missing something obvious in the set-up of qsynth, but I'm having a problem with SoundFonts that have multiple banks of channels. There is no problem with bank 0 displaying and functioning perfectly, but there does not seem to be a way of loading bank 1 and subsequent banks. The only thing that would appear to offer a way to load the additional banks is the offset value in the soundfont stack in the Settings. However, if that is altered to say "1" then I get an error message

fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
fluidsynth: warning: Could not connect to any physical jack ports; fluidsynth is unconnected

Hopefully, it is possible to use the additional functionality so I can link different banks to Qsynth1, Qsynth2 etc

On a slighly different note, I take it that the maximum possible channels for a bank is 128. I can set the number of MIDI channels to 256, but I just end up with 128 error messages saying that the channel is out of range

fluidsynth: error: Index out of range (chan=255, prog=255)

Apart from that everything works perfectly and its great to use



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 ;)


Thank-you for the fast reply and explanation. That now all makes perfect sense. I must admit that the one place that I had not right clicked was on one of the lines in the Channels window. As soon as the Edit came up the rest of the configuration was easy and very straight forward.

I knew there had to be something that I had overlooked, but I had not thought it was something that was quite that obvious. My only excuse was that I have only been playing with this all for 4 days and was happy enough to have Nted, VMPK, Qsynth and Qtractor linked together and playing a 5 part Buxtehude Gloria. Now I can do it properly.

Thanks again


As I have little knowledge of what you are talking about, could you please write down the steps I would need to follow to set Qsynth up like you are discussing ? I've been messing with this for days. Thanks :)

Add new comment