MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> Questions and Discussion >> System exclusive data in a MIDI file
(Message started by: TheAlmightyGuru on Oct 4th, 2010, 9:52pm)

Title: System exclusive data in a MIDI file
Post by TheAlmightyGuru on Oct 4th, 2010, 9:52pm
I have an old DOS game and I'd like to record the music from it. The game uses a Roland MT-32 for output, which I have. Some of the MIDI files will play in an ordinary MIDI player, but some won't. After opening the MIDI files in a hex editor, I noticed that the ones that do play look like standard MIDI files, but the ones that do not have a large chunk of data in the header which I believe is the SysEx data the game uses for some of the songs.

I thought that I might be able to separate the header from the MIDI file and that way I could send the SysEx using MIDI-OX, and then play the MIDI file using my ordinary player, but I wasn't sure where to trim.

Feeling rather clever, I booted up the game and logged the SysEx data with MIDI-OX, thinking I could just compare the binary data of the logged SysEx file with the contents of the MIDI file header. Unfortunately, they're quite different looking.

I'm pretty new to playing with SysEx data, so I'm not entirely sure what it's supposed to look like when embedded in a MIDI file.

Here is a link to a zip file with one MIDI file that works, one that doesn't, and the SysEx data I logged from the one that doesn't work.

http://www.thealmightyguru.com/Unfiled/ChampionshipFiles.zip

I figure the people here know an awful lot about MIDI files and SysEx data, so this is the place to ask. Can anyone help?

Title: Re: System exclusive data in a MIDI file
Post by TheAlmightyGuru on Oct 4th, 2010, 10:31pm
Never mind, I figured it out with some digging into the MIDI header structure. The data at the MIDI header is indeed the SysEx data. The reason I didn't recognize it is because it's broken up into single byte chunks of F7 01 XX 00, where XX is the byte. Kind of a bloated way of doing it! Three extra bytes for every one sent? I now have the ability to pull the SysEx data out of the files and send it using MIDI-OX.

Although, I supposed I could find a MIDI player that actually support embedded SysEx data, that would be a lot easier!



MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.