diff --git a/src/i_winmusic.c b/src/i_winmusic.c index 242a47ce..094cd4a2 100644 --- a/src/i_winmusic.c +++ b/src/i_winmusic.c @@ -1082,6 +1082,10 @@ static void FillBuffer(void) } else if (song.looping) { + for (i = 0; i < MIDI_CHANNELS_PER_TRACK; ++i) + { + SendShortMsg(0, MIDI_EVENT_CONTROLLER, i, MIDI_CONTROLLER_RESET_ALL_CTRLS, 0); + } RestartTracks(); continue; } @@ -1398,8 +1402,8 @@ static void I_WIN_UnRegisterSong(void *handle) { if (song.tracks) { - int i; - for (i = 0; i < MIDI_NumTracks(song.file); ++i) + unsigned int i; + for (i = 0; i < song.num_tracks; ++i) { MIDI_FreeIterator(song.tracks[i].iter); song.tracks[i].iter = NULL;