Hmm, so I was intending to replace GM1 SysEx resets with GM2 SysEx resets in my editor (changing 01 to 03 in the reset, meaning GM1 Level 2, and not the new GM2.0).
The first file I tested, the percussion on channel 9 (10) was no longer percussion. I used Winamp with CoolSoft VirtualMIDISynth. I was able to use bank select MSB 120 to set it back to percussion again, butttt, does this mean that for ANY GM2 file percussion needs to be explicitly assigned using MSB 120?
In MIDI Player, any instrument channel with actual instruments showed MSB 121, and the percussion channel (without percussion) showed 0 (and switched to drums when I changed it to 120)
Here are the original file and the modified file (which also adds bank selects if they do not exist).
Hello,
My understanding is that a GS (GM2 ?) file OUGHT to be backward compatible, in that it should still play OK under GM. Prob not with the correct instruments, but with something compatible. So Ch 10 should have a standard drum set, even if not an 'extra' one available under GS.
I'll have a look at the file you attach. Someone could, of course, have explicitly set things that are NOT within the parameters of the backward compatibility?
Geoff
Later..
I've had a look at the BATTLE file (as opposed to the _BATTLE version).
The Percussion is clearly on Ch 10... There is nothing that I can see in the midi data setting the Bank Number, so that must be just a default set by the software (in my case SynthFont). All that's in the file is setting the 'instrument' to 30 (if I remember corrrectly) which for SynthFont translates to 'Orchestra Kit'.
The file explicitly says it's for GM. Not GM2 or GS. There are no Bank Select instructions. Program Change yes, BS no.
The only oddity that I see is a SMPTE Offset message. Why?
Geoff
[quotePost id=12654]Hello,
My understanding is that a GS (GM2 ?) file OUGHT to be backward compatible, in that it should still play OK under GM.[/quotePost]
GM2 is different from GS. It's not quite GS, but supports much of the same functionality, albeit with some differences.
https://en.wikipedia.org/wiki/General_MIDI_Level_2
Yes, it still plays when I change it to GM2, but the percussion just becomes an instrument because the percussion is not explicitly set with a MSB 120. I was under the assumption that it would still treat channel 10 as percussion unless it was assigned MSB 121 which forces it to instrument, but it appears that may not be the case (as least with the players that I have).
I just tested with Anvil Studio and it plays 10 as percussion in the GM2 file. I exported from Anvil Studio, and it still shows as GM2, and does not play percussion on 10, only a cello or similar. I wonder if GM2 was not properly implemented in Anvil Studio, or not properly implemented in my other players, or some third option where it was never specified how channel 10 should behave by default?
I'm curious to know how the file plays on various hardware, if anyone can test it on hardware(s).
The SMPTE offset I'm sure is because the original file is suuuuuper old, and whatever was used to make it always added the SMPTE offset. I've seen many other files in my collection with it, but it is always zero.
Jason,
I've just played the file on my acoustic midi system, this uses a fairly old midi file player (PLAY) from PlayPac package back from 1992 or thereabouts. Midi output going to my Yamaha MU90r (XG compat).
Playback sounds perfectly good. All instruments seem fine. Ch 10 shows Percussion, MU90r reports it as 'Symph Kit' which may be the same thing as SynthFont reports as 'Orch Kit'. The MU90r shows the setting as 127/049 so it's defaulting to the Bank Setting, and responding to the PC command normally. For Ch 10!
Geoff
This was the modified file, correct? The _Battle version? I probably should have labeled it better before uploading it :p
In fact, I'll reattach with better names to avoid confusion.
The _Battle version is not a valid GM2 file; it explicitly sets all banks to 0:0, while the only valid bank MSB values would be 120 or 121.
But it happens to play correctly on my SC-8820; probably because the invalid MSB is ignored.
[quotePost id=12668]The _Battle version it is not a valid GM2 file; it explicitly sets all banks to 0:0, while the only valid bank MSB values would be 120 or 121.
But it happens to play correctly on my SC-8820; probably because the invalid MSB is ignored.
[/quotePost]
Hmmm. I checked the spec document for GM2. I assumed that because GM2 was made as an extension of GM1 that everything would still behave the same unless explicitly set to MSB 120 or 121. However, I see this:
3.3.1 Bank Select (cc#0/32)
[required]
Default Value - All Channels except Channel 10: 79H/00H
- Channel 10: 78H/00H
So to be a valid GM2 it MUST use 120 and 121?
I'm going to take a look at some GM2 files from my collection to see how they are set up.