Skip to content

Silence between iterations when looping a track using FluidSynth with the SDL_mixer 3.0 library #1791

@noxxion

Description

@noxxion

Related discussion

#1227

Is your feature request related to a problem?

When looping a midi track using FluidSynth with the SDL_mixer 3.0 library there is a pause when the track ends before it rewinds and is played again from the beginning.

I think I understand it has to do with reverb in samples and there can still be some voices active at the end of a midi track. So it's not a bug.

But I found this old issue I mentioned above. It was closed with a patch to workaround the case when looping a song with Fluidsynth.

Now I looked at the code of SDL_mixer 3.0 and it loops the track itself, while SDL_mixer 2.0 used the FluidSynth functionality to loop tracks. For that reason the special case that was implemented in the patch is not working here.

Describe the solution you'd like

Perhaps a new flag that can be set to cutoff playback at the end of the track?
Telling the FluidSynth player that there is an external playlist or loop active.

It could then be added as another condition to this if statement:

if(fluid_list_next(player->currentfile) == NULL && player->loop == 0)

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions