GM–GS–XG quick reference: Difference between revisions

From DTM Wiki
Jump to navigation Jump to search
(XGLite makes variation effects optional)
(Add format definition caveats)
Line 1: Line 1:
This is a help page listing which MIDI messages can be used for common things across [[General MIDI]], [[Roland GS]] and [[Yamaha XG]].
This is a help page listing which MIDI messages can be used for common things across [[General MIDI]], [[Roland GS]] and [[Yamaha XG]].


Note that there doesn't seem to be a formal GS standard that is publicly available, so the [[Roland SC-55mkII]] manual is the best reference for GS.
General notes:
 
* GS doesn't seem to have a publicly available formal standard, so the [[Roland SC-55mkII]] manual is used as a reference. Later Roland devices seem to use the SC-55mkII as the baseline for GS.
* Microsoft GS Wavetable Synth only supports a tiny fraction of the GS features, despite the name.
* XGLite only supports a subset of the XG features.


Symbol legend:
Symbol legend:

Revision as of 21:34, 26 August 2024

This is a help page listing which MIDI messages can be used for common things across General MIDI, Roland GS and Yamaha XG.

General notes:

  • GS doesn't seem to have a publicly available formal standard, so the Roland SC-55mkII manual is used as a reference. Later Roland devices seem to use the SC-55mkII as the baseline for GS.
  • Microsoft GS Wavetable Synth only supports a tiny fraction of the GS features, despite the name.
  • XGLite only supports a subset of the XG features.

Symbol legend:

  • ❌ — Not supported (according to the standard; the device might still have it as an extension)
  • *️⃣ — Supported, but meaning is standard-specific or depends on other factors
  • ✅ — Supported
  • [88] — Supported only by Roland SC-88 and later (not part of basic GS/SC-55)
Control Change messages
Ctrl # Controller name General MIDI Roland GS Yamaha XG Notes
0 Bank Select MSB *️⃣[1] *️⃣[2] On GS, this selects variation instruments.
On XG, this selects banks. Common numbers:
  • 0 = most normal/melody instruments[2]
  • 64 = SFX voices[2]
  • 126 = SFX kits[2]
  • 127 = drumkits (sets part to drum mode)[2]
1 Modulation [3] [1] [4] On GS and XG, this is Vibrato by default[1][4]
5 Portamento time [1] [5] Value 0 is shortest/fastest.[1][5] On XG, it is cent-linear.[5]
6 Data entry MSB *️⃣ *️⃣[1] *️⃣[5] (Used for RPNs and NRPNs)
7 Volume [3] [1] [5]
10 Pan [3] [1] [5]
11 Expression [3] [1] [5] On GS, this is multiplied with Volume to control overall volume.[1]
32 Bank Select LSB [1] [2] On GS/the SC-55, this does nothing. But the SC-88 onwards use this to select maps:
  • 0 = default
  • 1 = SC-55
  • 2 = SC-88
  • 3 = SC-88 Pro
  • 4 = SC-8850/SC-8820

On XG, this selects extension instruments.[2]

38 Data entry LSB *️⃣ *️⃣[1] *️⃣[5] (Used for RPNs and NRPNs)
64 Sustain
or Hold1[6]
[3] [6] [7] 0–63 = Off, 64–127 = On.[6][7]
65 Portamento [6] [7] 0–63 = Off, 64–127 = On.[6][7]
66 Sostenuto [6] [7] 0–63 = Off, 64–127 = On.[6][7]
67 Soft
or Soft Pedal[8]
[6] [8]
71 Sound Controller 2
or Harmonic Content
[8] On XG, relative adjustment of filter resonance (64 is zero change).[8]
Not supported on GS, but there is an NRPN. (TODO: Some later Sound Canvas models respond to this also. Which?)
72 Sound Controller 3
or Release Time
[8] On XG, relative adjustment of envelope release time (64 is zero change).[8]
Not supported on GS, but there is an NRPN. (TODO: Some later Sound Canvas models respond to this also. Which?)
73 Sound Controller 4
or Attack Time
[8] On XG, relative adjustment of envelope attack time (64 is zero change).[8]
Not supported on GS, but there is an NRPN. (TODO: Some later Sound Canvas models respond to this also. Which?)
74 Sound Controller 5
or Brightness
[9] On XG, relative adjustment of filter cutoff (64 is zero change).[9]
Not supported on GS, but there is an NRPN. (TODO: Some later Sound Canvas models respond to this also. Which?)
84 Portamento Control [6] [9] Value is MIDI note number.[6] On XG, ignores Portamento Time (always 0).[9]
91 Effect 1 depth
or Reverb send[6]
[6] [9] On GS and XG: Reverb send level[9][6]
93 Effect 3 depth
or Chorus send[6]
[6] [9] On GS and XG: Chorus send level[9][6]
94 Effect 4 depth
or Variation send
or Delay send[10]
[88][10] [9] On XG: Variation send level.[9]
XGLite does not require variation effects to be supported.[11]
Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.[10]
96 Data increment *️⃣[12] (Used for RPNs and NRPNs) (TODO: check this)
97 Data decrement *️⃣[12] (Used for RPNs and NRPNs) (TODO: check this)
98 NRPN LSB *️⃣[6] *️⃣[12] (Used for NRPNs)
99 NRPN MSB *️⃣[6] *️⃣[12] (Used for NRPNs)
100 RPN LSB *️⃣ *️⃣[13] *️⃣[14] (Used for RPNs)
101 RPN MSB *️⃣ *️⃣[13] *️⃣[14] (Used for RPNs)
RPN messages
RPN
MSB
RPN
LSB
RPN name General MIDI Roland GS Yamaha XG
0 0 Pitch Bend Sensitivity [3] [13] [15]
0 1 Fine Tuning [3] [13] [15]
0 2 Coarse Tuning [3] [13] [15]

(TODO: add non-GS XG NRPNs)

NRPN messages
NRPN
MSB
NRPN
LSB
NRPN name General MIDI Roland GS Yamaha XG Notes
1 8 Vibrato Rate[12] [6] [12] Relative adjustment (64 is zero change)
1 9 Vibrato Depth[12] [6] [12] Relative adjustment (64 is zero change)
1 10 Vibrato Delay[12] [6] [12] Relative adjustment (64 is zero change)
1 32 Filter Cutoff Frequency[12]
or TVF cutoff frequency[6]
[6] [12] Relative adjustment (64 is zero change)
1 33 Filter Resonance[12]
or TVF resonance[6]
[6] [12] Relative adjustment (64 is zero change)
1 99 EG Attack Time[12]
or TVF&TVA Env. Attack time[6]
[6] [12] Relative adjustment (64 is zero change)
1 100 EG Decay Time[12]
or TVF&TVA Env. Decay time[6]
[6] [12] Relative adjustment (64 is zero change)
1 102 EG Release[16]
or TVF&TVA Env. Release time[6]
[6] [16] Relative adjustment (64 is zero change)
24 (key #) Drum Pitch Coarse[14]
or Pitch coarse of drum instrument[6]
[6] [14] Relative adjustment (64 is zero change)
26 (key #) Drum Level[14]
or TVA level of drum instrument[6]
[6] [14]
28 (key #) Drum Pan[14]
or Panpot of drum instrument[6]
[6] [14]
29 (key #) Drum Reverb Send[14]
or Reverb send level of drum instrument[6]
[6] [14]
30 (key #) Drum Chorus Send[14]
or Chorus send level of drum instrument[6]
[6] [14]
31 (key #) Drum Variation Send[14]
or Delay send level of drum instrument[10]
[88][10] [14] On XG: Variation send level.[9]
Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.[10]

References

  1. Jump up to: 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Roland SC-55mkII Owner's Manual, page 90.
  2. Jump up to: 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Yamaha XG Specifications, v 2.00, page 16.
  3. Jump up to: 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 General MIDI System Level 1 Specification, page 2
  4. Jump up to: 4.0 4.1 Yamaha XG Specifications, v 2.00, page 17.
  5. Jump up to: 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Yamaha XG Specifications, v 2.00, page 18.
  6. Jump up to: 6.00 6.01 6.02 6.03 6.04 6.05 6.06 6.07 6.08 6.09 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 6.25 6.26 6.27 6.28 6.29 6.30 6.31 6.32 6.33 6.34 6.35 6.36 6.37 6.38 6.39 6.40 Roland SC-55mkII Owner's Manual, page 91.
  7. Jump up to: 7.0 7.1 7.2 7.3 7.4 7.5 Yamaha XG Specifications, v 2.00, page 19.
  8. Jump up to: 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 Yamaha XG Specifications, v 2.00, page 20.
  9. Jump up to: 9.00 9.01 9.02 9.03 9.04 9.05 9.06 9.07 9.08 9.09 9.10 Yamaha XG Specifications, v 2.00, page 21
  10. Jump up to: 10.0 10.1 10.2 10.3 10.4 10.5 Roland SC-88 Owner's Manual, page 7 - 22.
  11. See Yamaha XG Specifications, v 2.00, Attached Chart 1 pages 5 to 7 (all Variation/Insertion effects marked as optional for XGLite).
  12. Jump up to: 12.00 12.01 12.02 12.03 12.04 12.05 12.06 12.07 12.08 12.09 12.10 12.11 12.12 12.13 12.14 12.15 12.16 12.17 Yamaha XG Specifications, v 2.00, page 22
  13. Jump up to: 13.0 13.1 13.2 13.3 13.4 Roland SC-55mkII Owner's Manual, page 92.
  14. Jump up to: 14.00 14.01 14.02 14.03 14.04 14.05 14.06 14.07 14.08 14.09 14.10 14.11 14.12 14.13 Yamaha XG Specifications, v 2.00, page 23
  15. Jump up to: 15.0 15.1 15.2 Yamaha XG Specifications, v 2.00, page 24
  16. Jump up to: 16.0 16.1 Yamaha XG Specifications, v 1.32, page 13 (omitted in v 2.00; by mistake maybe?)

See also