Just thought I'd post a quick update - I haven't posted my work yet because
the fluidsynth API needs an addition - the problem is that there is no way to
remove a soundfont object from a synth without the synth freeing its memory.
An update to fluidsynth is being considered to address this, but I don't know
when this will happen.
However, if someone doesn't mind patching fluidsynth, I do have an interim
workaround, so if anyone wants to use it I could email the fluid~ source file
and a simple patch to the fluidsynth library.
The approach I took, BTW, is simply to keep track of the filenames by which
sounfonts are loaded into fluid~'s, and if they are the same string, the font
is shared rather than being reloaded. This approach isn't perfect, since
different filenames can refer to the same soundfont, but that's the only
drawback I can see. And before you say that this will prevent reloading an
updated soundfont file, consider that there is no way to unload a soundfont
in fluid~ yet. So as is, you would anyway have to erase all the fluid~'s that
use the font an recreate them. And once the usage count goes to zero, I erase
the shared soundfont, so the sounfont will get reloaded in this case.
Larry Troxler