[PlanetCCRMA] qsynth/fluidsynth

Rui Nuno Capela rncbc@rncbc.org
Thu Apr 14 16:27:01 2005


>> > does anyone what am I doing wrong?  or is there a problem going on?
>> >
>>
>> You're doing nothing wrong. Only your expectations were :)
>>
>> Look at it as a soundfont stack. Patches with the same bank+program
>> number are overriden by the soundfonts that have been last loaded.
>> E.g. if you have two fully GM mapped soundfonts loaded, most probably
>> you can only access the programs of the second loaded soundfont.
>>
>> One solution is loading this "conflicting" soudfonts on different
>> qsynth/fluidsynth engines.
>
> *nod* a couple hours after I sent this I read an archived mail to this
> list where you basically said the same thing - so that brings up a
> question - how come I can't seem to open multiple instances of qsynth
> without it complaining that it can't access jack ("can't create audio
> driver")? - I don't recall this happening before - but definitely right
> now I can only open one instance of qsynth or fluidsynth...
>

Uhoh. With qsynth 0.2 you don't have to start another program instance,
just add a new engine (hint: right-click on the bottom of the main panel
and choose "New engine...")

Note that starting a new qsynth program instance will just try to activate
a duplicate jack client name, which jackd will refuse to do. That's why
you get the "can't create audio driver" complaint.

However, if you create a new engine, you have the chance to give it a new
and distinct jack client id. Try it out.


> so if I'm to understand it - if one sound found is bank 128 and the
> other is 0, they'll both load at once - so if I had, say 16 soundfonts
> that were all different bank numbers, then I could load them all in one
> instance - which means I would have to edit the soundfont?  I'm not sure
> I understand this notion of the banks.  it's like within the soundfont,
> it's definited as bank 0 or 1 or 128 or whatever?
>

I know it seems confusing at first.

Suppose you have two piano soundfonts, each with 3 presets only as follows:

  soundfont-1.sf2:
    bank 0, program 0 = Piano-100
    bank 0, program 1 = Piano-101
    bank 1, program 0 = Piano-110

  soundfont-2.sf2:
    bank 0, program 0 = Piano-200
    bank 0, program 2 = Piano-202
    bank 1, program 2 = Piano-212

If you load soundfont-1.sf2 and then soundfont-2.sf2, in this order,
you'll end with the following preset/patch layout:

    bank 0, program 0 = Piano-200 (from soundfont-2.sf2)
    bank 0, program 1 = Piano-101 (from soundfont-1.sf2)
    bank 0, program 2 = Piano-202 (from soundfont-2.sf2)
    bank 1, program 0 = Piano-110 (from soundfont-1.sf2)
    bank 1, program 2 = Piano-212 (from soundfont-2.sf2)

Notice that Piano-100 (bank 0, program 0) from soundfont-1.sf2 is hidden,
and therefore inaccessible. It has been overridden by the Piano-200 preset
with the same bank/program pair of soundfont-2.sf2, which is loaded on top
of it.

Is it clear now or even more confused?

Hope not.
-- 
rncbc aka Rui Nuno Capela
rncbc@rncbc.org