Have you tried to convert the song from the game in Midi format? Because when I tried to open it, it said that there's some format errors in the songs. It told me that some notes never end, some notes have a duration longer than 1 measure and the first Track have multiple instruments.
What your program "complained" about is completely expected. I apologize that some notes didn't end, that I probably should fix. However, I think it's ridiculous that your program would not allow notes to have duration longer than 1 measure, or that the first track have multiple instruments.
I had tested the MIDI in Cheapo itself and also by playing it on Windows Media Player, and neither complained about it. I was also able to import it into Microsoft DirectMusic which also was able to understand the file okay enough to render it into .WAV, from which I made the MP3.
So, the program said that it added 150 notes events, removed 9 unnecessary Program Change events, repaired invalid parameters for 6 events and events were moved to new tracks so that each track plays s single MIDI channel.
If it's not too much trouble I'd like to see what your program did to the MIDI. By the way which program is it? Just curious.
What is the way you used to convert songs in MIDI?
I wrote my own program to convert the songs based on DOSBox's capture of the OPL2 commands sent to the sound card. Basically I take the frequency, volume and note-on/note-off times that were sent to the sound card, and convert accordingly to MIDI note-on/note-off events with the appropriate note number and velocity. There are 9 channels in the sound card, so I put notes from each sound card channel into its own track and own MIDI channel number (except percussion which as you know needs to go to MIDI channel #10). Instrument change events were inserted whenever the program sees a change in sound parameters on a channel (sound parameters include things like the ADSR rates, modulator:carrier frequency ratios, modulation amount, etc.)
There are two side effects to this. One, since there is no reason for the game to constrain itself to stick to just one instrument on each channel, instruments do change dynamically on each channel and so the converted MIDI also have instrument changes on each track. This however is perfectly legit in the MIDI file format. Your program may complain, probably because the MIDI it produces happens to stick to certain conventions, but they are conventions not requirements.
A more serious side effect is that because there are no metric-based tempo information, the notes do not "line-up" correctly with the purported measures based on the purported tempo information. From the listener's point of view that makes no difference whatsoever, but a program that tries to render this into a "sheet music" sort of format will very likely get confused.
I can fix both problems to some extent by having my program reorganize the MIDI after the conversion process, and throwing in some additional annotations in the MIDI file that hopefully allows your program to handle the MIDI correctly. However, I have to admit they are somewhat low priority for me if all it does is to make your program happy, since the goal was for Cheapo to be able to play it back right and that seems to be the case. But it's still possible that depending on which version of Windows you are using that might not be true either, so I'd look into this further if you try playing it from Cheapo or Windows Media Player and one of them complains about the MIDI.
Thanks for telling about this by the way. Although not my highest priority right now I still like to know how various MIDI editing programs handle MIDIs and it would certainly be nice to produce MIDIs that can be handled properly by as many programs as possible.