FluidSynth seemingly adds a few seconds of silence at the end of every MIDI track, and this is noticeable when SDL3_mixer is looping one, since there will be an awkward pause before the track restarts. From what I've read, instead of only checking if there are no MIDI events left, FluidSynth considers the track finished when all of the voices are also inactive, meaning complete silence. So far, the only workaround is to manually set when the track ought to end using i.e. MIX_PROP_PLAY_MAX_MILLISECONDS_NUMBER.
Tested on commit c350c56 with static SDL-vendored FluidSynth, using this soundfont.
FluidSynth seemingly adds a few seconds of silence at the end of every MIDI track, and this is noticeable when SDL3_mixer is looping one, since there will be an awkward pause before the track restarts. From what I've read, instead of only checking if there are no MIDI events left, FluidSynth considers the track finished when all of the voices are also inactive, meaning complete silence. So far, the only workaround is to manually set when the track ought to end using i.e.
MIX_PROP_PLAY_MAX_MILLISECONDS_NUMBER.Tested on commit c350c56 with static SDL-vendored FluidSynth, using this soundfont.