At 11:37 AM 2/5/2015, you wrote:
Hi and thanks for chiming in - as you very likely know, all formats have
their own quirks and ways of transforming the sample according to
various rules, so SFZ/DLS/Gigasampler/etc support would require certain
additions and changes to the playback core. Simply adding a dependency
to libInstPatch does not seem to be sufficient - as other formats
wouldn't exactly map 1:1 to SF2, we would be something that plays SF2
really well (like today) but other formats slightly wrong.
Actually (and I have the world expertise on this) most formats are eerily
similar. It's not as different as you might be implying, in fact it's almost
identical. PCM sample, volume, pan, tune, bits, sample rate, channels, loop
on/off, loopstart, loopend, root key, keytrack. MAYBE amplitude envelope.
The solution is really as simple as taking in the core parameters (see above)
and transferring it in. You don't have to guarantee perfect results; merely
getting it in is much more advantageous.
My thought is if there is a consideration of putting another instrument format
to be read within the core FluidSynth, I would recommend SFZ only for the fact
that people can write their own SFZ files very simply. FS would only take a
subset of the opcodes as authoritative, which is actually all FS would ever
need. The advantage is making FS a bit more open as far as input goes.