Do MIDI files store any standard indicator to tell if a file should be played or edited using GM, GS, or XG compatible settings? I'm trying to decide if I should make an automated function in my software to check, or if I should leave manual selection up to the user. Also, is there a general consensus on what instruments are mapped to certain banks in each format?
I did notice in my most complex test file (dmed.mid) that it sends a GS reset at the beginning of the file, but I don't want to assume that this will always be the case.
More specifically, I am trying to provide the most accurate instrument name display I can. My midi files have assorted bank selects, and I am not sure of how to go about making sure they have names that match.
For example, most of what I have read says that the majority of midi devices use only the MSB of bank select. However, my files seem to have both MSB and LSB in use.
One file has #25 Acoustic Guitar (nylon), but bank selects of 127/123 and 127/126
Another (the dmed.mid mentioned earlier) has tons of bank selects, with MSBs of 1, 2, 3, 8, 9, 11, 16, 24, and LSBs of mostly 2 and some 1.
I have several .ins instrument name files from openmidiproject that I'd like to incorporate (definition files from Sekaiju midi editor, says compatible with Cakewalk and Sonar instrument definition files) which seem to be fairly complete, but I don't know how to map each of the sections in these files to specific banks.