How can I make my MIDI file compatible with many different computers, so that it plays the way it was intended for a wide audience?
There are general recommendations for folks who write ‘canned’ MIDI files for use by ‘just about anybody’, for example MIDI files that you downloaded from the internet. If these recommendations aren’t followed, then the MIDI file might not play properly on some computers. General MIDI Your file should be compatible with the minimum General MIDI specifications. General MIDI defines 128 patches, Program # 0-127. You should not use controller 0 or 32 (Bank Select MSB and LSB), since patches on higher banks are not defined in the GM spec. If you have a synth/sound card that happens to have some nice sounding patches on a higher bank, this doesn’t mean that everyone else will have these same patches. Use only the 128 patches on ‘Bank 0’. If the patch is not in the General MIDI list, other synths might play a different instrument than expected, or nothing at all. General MIDI also defines 128 controllers, however to be GM compatible a synth only needs to recognize a few basic controllers: 1