I've tested GS with 7F with Microsoft GS Wavetable Synth [...] and it works.
I
previously discovered the Microsoft GS Wavetable Synth ignores the Device ID. Because the Microsoft GS Wavetable Synth is the only thing that can ever be listening to its port, it seems okay for it to ignore the Device ID.
However, when you are making a MIDI file, you never know if someone will play it back on an external Roland GS device. I think it's a good idea to use Device ID hex 10 in GS messages to maximize the chance it will match the default Device ID of an external device.
I've tested GS with 7F [...] with the Roland keyboard I have and it works.
Interesting! What model is your Roland keyboard? I want to see what its manual says.
I don't have any external Roland devices myself, so I've looked at Roland device manuals to predict how Roland GS devices will respond. I think it's a good idea to use Device ID hex 10 in GS messages to maximize the chance it will match the default Device ID of an external device. But now I wonder how likely it is that Roland GS devices will respond to Device ID hex 7F also.
XG is still a mystery to me because 10 means device 0 and I don't know if device ID 0 stands for ALL devices or only one device with id=0. I could not find an answer in the specs I've seen.
Yamaha XG Specifications documents can be found online. In the specs, the Device Number isn't described in detail, only listed as hex digit n in various messages:
F0 43 0n 4C ... F7: Bulk Dump
F0 43 1n 4C ... F7: Parameter Change (including XG System On)
F0 43 2n 4C ... F7: Dump Request
F0 43 3n 4C ... F7: Parameter Request
So I guess it's more precise to say a Yamaha XG Device Number is a single hex digit from 0 to F -- the other part of that byte helps indicate the message type.
In a
previous post, I looked in the manual for the Yamaha MU80, the first device to use Yamaha XG. It has a panel setting for the Device Number that displays it as 1 to 16, or "all" to indicate it ignores the Device Number in incoming messages. The manual doesn't specifically mention how the Device Number displayed on the panel maps to hex bytes in the incoming messages, but I assume the displayed numbers 1 to 16 match System Exclusive hex digits 0 to F.
The manual says you should use the setting "all" if you have one MU80, or set specific Device Numbers if you use multiple MU80s. It doesn't specifically say what the default setting is, but perhaps the default is "all" so the MU80 ignores the Device Number by default. If so, then perhaps all or most Yamaha XG devices ignore the Device Number in XG messages by default?