Hi!

I've been working on a sfz loader for fluidsynth. I've made the code
available on github, it is C++17, I use LGPL2.1+ like fluidsynth itself:

  https://github.com/swesterfeld/liquidsfz

So this adds the necessary bits to make fluidsynth be able to parse,
load and play sfz files. This is early in the development process, so
quite a few essential opcodes are still unsupported. Partially the
question is also to what degree fluidsynth itself could/should be
modified to get better sfz support.

For instance, in the SalamanderGrandPiano, a sound is supposed to be
played if a key is released (trigger=release):
  https://sfzformat.com/opcodes/trigger

Another sound is supposed to be played if the sustain pedal is pressed:
  https://sfzformat.com/opcodes/on_hiccN

As far as I can see, neither can possibly be implemented with the
existing loader API, because the loader API only allows me to define a
note_on function. Probably some more examples of unimplementable with
the current API (or even synthesis model) exist. So in the long run, I
see three ways to deal with this

- fluidsynth is actively extended to get better sfz support
- these opcodes will remain unsupported forever
- liquidsfz gets its own sampler and no longer uses fluidsynth

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan

_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to