03-07-2014, 10:15 AM
Download: http://mxoemu.info/MxoMusicPlayer.zip (1.1.1.5)
(Requires Vista or newer OS, both 32bit and 64bit native version is included)
Can open/save both mfb and mfa (music-data in XML format which you can edit) files (located in resources/music of MxO install) which describe the music tracks, zones and groups.
Once opened, can play tracks, either starting from a random starting point (if you double click on the left list), or from a specific starting point or segment (if you double click on the right list). Current segment playing is highlighted on the right list. When near a Bar boundary, TMT in the status bar will flash black. This is when aligned transitions can take place.
Aligning switches between segments/tracks is done exactly as per MxO rules. This includes playing intro/ending flourishes and fade in/outs.
For authoring sgt files, http://files.rajko.info/dx90_directmusicproducer.exe can be used (File->Runtime save as option), a sample project containing all the MxO sgt and wav files is http://files.rajko.info/music.pro (drop in resource/music directory then open with DirectMusic producer).
All features of sgt files that MxO used are supported (so things like Sine/Logarithmic curves are not, neither is MIDI sequence playing or Multiple Simultaneous Wav tracks per segment).
Supports hot-reload of sgt and audio files if you reload the track (switch to another track then switch back, double clicking to play the same track doesn't do anything, following MxO rules)
Low-level playback and synchronisation (of wav files, which are actually mp3 encoded) achieved using the fmod library (http://www.fmod.org) which is free for non-commercial/indie use.
I have specifically avoided using DirectMusic (even though it's what MxO uses and would have saved me time manually parsing/scheduling sgt files) because it's non-portable (does not even have a 64-bit version), not-supported (latest DXSDK release to contain it is August 2007), and buggy/unstable on modern OS.
Have fun listening to all the MxO tracks exactly as they were meant to be heard (should be sample-accurate to actual in-game reproduction).
CHANGELOG:
1.1.1.5 - Fixed regression with fadeouts cutting off the sound too early
1.1.0.4 - Initial release