afritz1 / OpenTESArena

Open-source re-implementation of The Elder Scrolls: Arena.
MIT License
988 stars 68 forks source link

Some MIDIs do not loop #29

Open afritz1 opened 8 years ago

afritz1 commented 8 years ago

The MIDI tracks PERCNTRO.XMI and SHEET.XMI loop over and over, but SUNNYDAY.XMI (in the game world) only plays once.

kcat commented 8 years ago

This seems to be a problem with the song, or at least how it's interpreted by WildMIDI. I remember having the same issue with some of Daggerfall's songs too (some of which are the same as Arena's, but in HMI format). Ultimately the problem is that the song has a really really really large delay specified before the end of the song (SUNNYDAY.XMI is calculated to be over 166 minutes long).

Probably what needs to happen is that WildMIDI needs to ignore the delay before the end-of-song event. I'm not sure if that will fix it, though.

Allofich commented 6 years ago

I just tried and I don't have a looping issue with either of the two MIDIs mentioned in https://github.com/afritz1/OpenTESArena/issues/38 as having looping problems (OVERSNOW.XMI and SUNNYDAY.XMI). I tested by changing the MIDI played at the title screen. Also SUNNYDAY.XMI didn't have a looping issue when walking around the Imperial City.

Was this fixed somewhere along the way?

afritz1 commented 6 years ago

It's been using SUNNYDAY.XFM instead of SUNNYDAY.XMI, since the .XFM version doesn't have any looping problems. I don't think WildMIDI has fixed the looping on their side yet.

Allofich commented 6 years ago

Yeah, I overlooked that. I'll test again explicitly using the .XMI files, and I'll also try the latest WildMIDI, just in case.

Allofich commented 6 years ago

Sure enough, I changed SunnyDay to use the .XMI file, and with both the .dll from the version of WildMIDI I had been using, and the .dll built from the latest WildMIDI git repository, the no-looping (long delay) problem is still there.

afritz1 commented 6 years ago

See #38 for more details. I'm keeping this issue around until XMI looping for SUNNYDAY.XMI and OVERSNOW.XMI is properly handled by WildMIDI.