Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracks cannot be restarted in player after reaching EOT #1138

Closed
albedozero opened this issue Aug 5, 2022 · 0 comments · Fixed by #1137
Closed

Tracks cannot be restarted in player after reaching EOT #1138

albedozero opened this issue Aug 5, 2022 · 0 comments · Fixed by #1137
Labels

Comments

@albedozero
Copy link
Contributor

FluidSynth version

FluidSynth runtime version 2.2.8
Copyright (C) 2000-2022 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of Creative Technology Ltd.

FluidSynth executable version 2.2.8
Sample type=double

Describe the bug

When playing a type 1 MIDI file with tracks of different lengths, if the user seeks backward in the song after one of the tracks has finished, the track will no longer play. This is because the player callback will not call fluid_track_send_events() on a track if it has no events left to play, but fluid_track_send_events() is where the track is reset if there is a seek in progress.

Expected behavior

The player callback should call fluid_track_send_events() on all tracks regardless of EOT, since fluid_track_send_events() already checks to see if there are any events left to play in the track, but does this after checking to see if it needs to reset the track because a backwards seek has occurred.

Steps to reproduce

  1. Unzip the attached midi file and play it using the command below and a GM soundfont

funkjam5.tar.gz

fluidsynth funkjam5.mid FluidR3_GM.sf2
  1. After the electric piano stops playing in the chorus, enter player_seek -50000 to go back to the beginning of the song. The EP will no longer play.

Additional context

fixed by #1137

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant