Seems GM2 files are a bit of a rarity. In my MASSIVE collection of 52,000 MIDI files downloaded from ye olde internet, not a single one contains a GM2 reset.
Do any of you have any genuine GM2 files found online anywhere? I'm looking specifically for ones that are actual full songs, and not a test sample. I do have one sample that Clemens provided back in May in this post
https://www.midi.org/forum/8860-general-midi-level-2-ch-11-percussion
but it is purely a diagnostic file.
Thanks!
Here are a few GM2 MIDI files you can look at:
Video Game Music Archive - Newly Submitted Files search - Song Title contains "GM2"
Notes:
• The file with "(GS/GM2)" in the name is not GM2 -- it uses a Roland GS format used by the Roland SC-8850. The other files are GM2.
• The file "Another Day At Shinra HQ (GM2)" by MJG0117 sends some GM System Exclusive messages. It sends GM1 On, then GM2 On. I believe this is for fallback purposes: If a device understands the GM1 On message, but doesn't understand the GM2 On message, it might ignore the GM2 bank numbers and get almost the same GM1 instrument sounds. [Also interesting: This file sends some Roland System Exclusive messages for Roland Sound Canvas devices to display an icon ("FF7R", to represent the game name, Final Fantasy VII Remake) and text showing the title, original composer, and MIDI author ("Another Day", "at Shinra HQ", "Takafumi Imamura", MIDI by MJG0117).]
• The files by JexuBandicoot527 often have Bank LSB missing on the channel 10 drums track (Bank MSB 120, no Bank LSB, Program Change). And they have multiple copies of Control and Program messages for some reason. And they sometimes have some tracks at the bottom with no notes but with some Program Changes with no Bank messages.
This should at least give you some idea how two other people making MIDI files make their MIDI files for GM2. You can see the correct GM2 Bank numbers are used, but maybe a GM2 System Exclusive message is omitted, in which case you are expected to already have your device in a GM2-compatible mode before you play the MIDI file.
I've had a quick look. There seem to be a few channels in a couple of the songs that are missing a bank select, but otherwise I do see that generally all melody channels have MSB 121 and all percussion has MSB 120. This is different from how I understood that it would work. I figured with GM2 you could use both GM1 and GM2 bank selects, as GM2 was an extension to GM1.
This changes how I am going to implement my GM inserts. I'm just going to stick with GM1, so I don't need to also modify every bank select in the file to be GM2 compliant.
Out of curiosity, will the extended GM2 percussion sounds still play on most devices if used in a normal GM1 file? Percussion 28-35 and 83-88? They play fine with my players, but I have no hardware to test.
[quotePost id=12697]I figured with GM2 you could use both GM1 and GM2 bank selects, as GM2 was an extension to GM1.[/quotePost]
GM1 does not define any bank select messages. A GM1 file must not send bank selects. (A file without bank selects is compatible with the default banks in GM2, and GS/XG.)
[quotePost id=12697]will the extended GM2 percussion sounds still play on most devices if used in a normal GM1 file?[/quotePost]
A GM1-only device will not play these sounds.
GM2/GS/XG devices will have them, but it might be possible that the GM1 reset switches to a bank that does not contain them.
If a file has such sounds, it really should be marked as GM2/GS/XG.
[quotePost id=12706][quotePost id=12697]I figured with GM2 you could use both GM1 and GM2 bank selects, as GM2 was an extension to GM1.[/quotePost]
GM1 does not define any bank select messages. A GM1 file must not send bank selects. (A file without bank selects is compatible with the default banks in GM2, and GS/XG.)
[quotePost id=12697]will the extended GM2 percussion sounds still play on most devices if used in a normal GM1 file?[/quotePost]
A GM1-only device will not play these sounds.
GM2/GS/XG devices will have them, but it might be possible that the GM1 reset switches to a bank that does not contain them.
If a file has such sounds, it really should be marked as GM2/GS/XG.[/quotePost]
Sigh. The more I learn, the more complicated it gets 😉
My plan was to do the following with files edited with my editor, among other things:
Add a SYSEX reset (GM, GS, XG) if needed
Add bank selects when there aren't any
So this says to me that if the file is strictly GM1, I should NOT add bank selects, and if I do add bank selects to a GM file, then I most likely have to change any MSB 0 to MSB 121 and any percussion MSB to 120, and insert a GM2 reset, or insert a GS reset and leave the bank select numbers as is.
Looks like I will need to add some toggle options to let the user choose whether or not to add these things, and some info on what is and isn't possible with the different formats.
So curious now, my GM sound list file has 9 variations for GM2 sounds. Are these all MSB or LSB bank selects? Would they be MSB 121 LSB 0 .. 8 ? If so, I have to fix that as well. I currently have them as MSB selection 0 .. 8.
I think some of the confusion I am running in to is that my software just works with most stuff no matter what you give it.
GM2 uses both MSB and LSB bank selects. For the GM2 bank numbers, see appendix A of the GM2 specification. Also see sections 2.4, 2.6, 3.2, and 3.3.1.
Do not think of bank selects as independent messages. They make sense only in connection with the following Program Change message.
What matters is the selection of an instrument. In GM1, this is done with only a Program Change; in GM2/GS/XG, this is done with bank select(s) and Program Change.