Conversation
https://www.doomworld.com/idgames/music/ultimidi The song 'E2M2 Myrgharok - Halls of Wandering Spirits' contains a track which produces only metadata, meaning that `samples_to_mix` is never increased. Because of this, the while-loop never terminates, and the program freezes. This problem is only exhibited when looping is enabled.
WildMIDI internally uses a single list of events, like a Type 0 MIDI file, resulting in Type 1 MIDI files being 'flattened' into a single track when they are loaded. Because of this, 'end of track' events lose their original meaning, ending the entire song instead of just the track which they belong to. Rather than overhaul WildMIDI to internally use multiple tracks, it is easier to simply discard all but the final 'end of track' event. https://www.doomworld.com/idgames/music/ultimidi This fixes the playback of 'E2M1 TrialD - Pagliacci's Going to Town', which would otherwise loop within seconds of starting. Closes Mindwerks#213. The MIDI files from Rise of the Triad which are linked in the issue are Type 1 MIDI files which suffer from this exact problem.
Contributor
|
Thanks |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This addresses an infinite loop as well as incorrect song looping. See each commit for further details.