Josh,
How does this affect the GS sound effects bank?
-~Chris
address@hidden wrote:
So I went ahead and added GM On/Off and GS Reset SYSEX handling.
There are now 2 parameters synth.midi-mode=normal/gm/gs and
synth.midi-mode-lock=no/yes. If midi-mode-lock is set to yes then
SYSEX MIDI mode messages have no effect (useful for forcing
FluidSynth to a particular mode). If the current MIDI mode is GM
or GS, then percussion note-offs are ignored for all except Long
Guiro and Long Whistle, as per the GM spec. I tested this with a
GS file and it seems to work as expected (no more missing drums).
TODO:
1 Reset MIDI mode as part of fluid_synth_system_reset()
2 Reset controllers when GM is turned on (and other values
mentioned in gmguide2.pdf)
3 Figure out how to synchronize the midi-mode setting with the
midi_mode variable, when it is being assigned from the synthesis
context.
For item 3. I'm thinking of adding value get callback
functionality to settings, so that a callback can be registered for
obtaining the current value (so for example the midi-mode string
setting could be generated from the current value of the enum
synth->midi_mode). Perhaps some hack can just be implemented for
now though, but calling settings functions from within synthesis
context isn't really a good idea (mutex locks, mallocs, etc).
Feedback and testing would be appreciated :) The "normal" value
for midi-mode doesn't sound great, but I couldn't think of a better
word.
I'm going to do my best to get FluidSynth 1.1.0 released by the end
of this month (in a nice working/stable state with good API
documentation). Testing FluidSynth in various environments and
reporting success/problems would be really helpful. There are some
fairly significant changes with the whole synthesis path and the
more testing FluidSynth in real word scenarios the better.
Cheers!
Josh
_______________________________________________
fluid-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/fluid-dev