GM–GS–XG quick reference: Difference between revisions
Jump to navigation
Jump to search
(actually I liked it better before. Undo revision 240 by Hikari no yume (talk)) Tag: Undo |
(Add channel mode messages) |
||
(17 intermediate revisions by 2 users not shown) | |||
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]]. | ||
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) | |||
* 👻 — Undocumented, but appears to work on some devices in testing | |||
* ⚠️ — Supported, but not useful | |||
* *️⃣ — 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/[[Roland SC-55|SC-55]]) | |||
==Control Change messages== | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="width: 1em;" | Ctrl # | ! style="width: 1em;" | Ctrl # | ||
! style="width: 10em;" | Controller name | ! style="width: 10em;" | Controller name | ||
! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | ! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | ||
! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | ! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | ||
! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | ! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | ||
! Notes | ! Notes | ||
Line 48: | Line 61: | ||
| 67 || Soft<br>''or'' Soft Pedal<ref name=xg-p20></ref> ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p20>Yamaha XG Specifications, v 2.00, page 20.</ref>|| | | 67 || Soft<br>''or'' Soft Pedal<ref name=xg-p20></ref> ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p20>Yamaha XG Specifications, v 2.00, page 20.</ref>|| | ||
|- | |- | ||
| 71 || Sound Controller 2<br>''or'' Harmonic Content ||❌|| | | 71 || Sound Controller 2<br>''or'' Harmonic Content ||❌||👻<ref name=88vl-sound-ctrl></ref>||✅<ref name=xg-p20></ref>||On XG, relative adjustment of filter resonance (64 is zero change).<ref name=xg-p20></ref><br>On GS, there is no documented support for it, but there is an NRPN.<br>SC modules from at least the [[Roland SC-88VL|SC-88VL]] onwards appear to respond to it anyway and behave like XG.<ref name=88vl-sound-ctrl>Tested by the following users: | ||
* [[User:hikari_no_yume|hikari_no_yume]] has tested and found that her SC-88VL responds to controllers 71 to 74 in GS mode. | |||
* [[User:purps|purps]] has tested and found that [[Roland Sound Canvas VA]] responds to controllers 71 to 74 in GS mode.</ref> | |||
|- | |- | ||
| 72 || Sound Controller 3<br>''or'' Release Time ||❌|| | | 72 || Sound Controller 3<br>''or'' Release Time ||❌||👻<ref name=88vl-sound-ctrl></ref>||✅<ref name=xg-p20></ref>||On XG, relative adjustment of envelope release time (64 is zero change).<ref name=xg-p20></ref><br>On GS, there is no documented support for it, but there is an NRPN.<br>SC modules from at least the [[Roland SC-88VL|SC-88VL]] onwards appear to respond to it anyway and behave like XG.<ref name=88vl-sound-ctrl></ref> | ||
|- | |- | ||
| 73 || Sound Controller 4<br>''or'' Attack Time ||❌|| | | 73 || Sound Controller 4<br>''or'' Attack Time ||❌||👻<ref name=88vl-sound-ctrl></ref>||✅<ref name=xg-p20></ref>||On XG, relative adjustment of envelope attack time (64 is zero change).<ref name=xg-p20></ref><br>On GS, there is no documented support for it, but there is an NRPN.<br>SC modules from at least the [[Roland SC-88VL|SC-88VL]] onwards appear to respond to it anyway and behave like XG.<ref name=88vl-sound-ctrl></ref> | ||
|- | |- | ||
| 74 || Sound Controller 5<br>''or'' Brightness ||❌|| | | 74 || Sound Controller 5<br>''or'' Brightness ||❌||👻<ref name=88vl-sound-ctrl></ref>||✅<ref name=xg-p21>Yamaha XG Specifications, v 2.00, page 21</ref>||On XG, relative adjustment of filter cutoff (64 is zero change).<ref name=xg-p21></ref><br>On GS, there is no documented support for it, but there is an NRPN.<br>SC modules from at least the [[Roland SC-88VL|SC-88VL]] onwards appear to respond to it anyway and behave like XG.<ref name=88vl-sound-ctrl></ref> | ||
|- | |- | ||
| 84 || Portamento Control ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p21></ref>||Value is MIDI note number.<ref name=mkii-p91></ref> On XG, ignores Portamento Time (always 0).<ref name=xg-p21></ref> | | 84 || Portamento Control ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p21></ref>||Value is MIDI note number.<ref name=mkii-p91></ref> On XG, ignores Portamento Time (always 0).<ref name=xg-p21></ref> | ||
Line 62: | Line 77: | ||
| 93 || Effect 3 depth<br>''or'' Chorus send<ref name=mkii-p91></ref> ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p21></ref>||On GS and XG: Chorus send level<ref name=xg-p21></ref><ref name=mkii-p91></ref> | | 93 || Effect 3 depth<br>''or'' Chorus send<ref name=mkii-p91></ref> ||❌||✅<ref name=mkii-p91></ref>||✅<ref name=xg-p21></ref>||On GS and XG: Chorus send level<ref name=xg-p21></ref><ref name=mkii-p91></ref> | ||
|- | |- | ||
| 94 || Effect 4 depth<br>''or'' Variation send ||❌|| | | 94 || Effect 4 depth<br>''or'' Variation send<br>''or'' Delay send<ref name=88-p7-22>Roland SC-88 Owner's Manual, page 7 - 22.</ref>||❌||[88]<ref name=88-p7-22></ref>||✅<ref name=xg-p21></ref>||On XG: Variation send level.<ref name=xg-p21></ref><br>XGLite does not require variation effects to be supported.<ref name=xglite-variation-fx>See Yamaha XG Specifications, v 2.00, Attached Chart 1 pages 5 to 7 (all Variation/Insertion effects marked as optional for XGLite).</ref><br>Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.<ref name=88-p7-22></ref> | ||
|- style="background: lightgrey" | |- style="background: lightgrey" | ||
| ''96'' || ''Data increment'' ||❌||❌||*️⃣<ref name=xg-p22>Yamaha XG Specifications, v 2.00, page 22</ref>|| ''(Used for RPNs and NRPNs)'' (TODO: check this) | | ''96'' || ''Data increment'' ||❌||❌||*️⃣<ref name=xg-p22>Yamaha XG Specifications, v 2.00, page 22</ref>|| ''(Used for RPNs and NRPNs)'' (TODO: check this) | ||
Line 75: | Line 90: | ||
|- style="background: lightgrey" | |- style="background: lightgrey" | ||
| ''101'' || ''RPN MSB'' ||*️⃣||*️⃣<ref name=mkii-p92></ref>||*️⃣<ref name=xg-p23></ref>|| ''(Used for RPNs)'' | | ''101'' || ''RPN MSB'' ||*️⃣||*️⃣<ref name=mkii-p92></ref>||*️⃣<ref name=xg-p23></ref>|| ''(Used for RPNs)'' | ||
|- | |||
! colspan=6 | ''Channel Mode messages'' | |||
|- | |||
! style="width: 1em;" | CC # | |||
! style="width: 10em;" | Name | |||
! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | |||
! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | |||
! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | |||
! Notes | |||
|- | |||
| 120 || All Sound Off || ❌||✅<ref name=mkii-p92></ref>||✅<ref name=xg-p24></ref>|| Standard but optional MIDI feature, not required by GM. Cuts off currently played sounds on the channel as soon as possible,<ref>MIDI 1.0 Detailed Specification 4.2.1, page 25.</ref> skipping the "release" part of sounds, unlike All Notes Off.<ref name=xg-p24></ref> | |||
|- | |||
| 121 || Reset All Controllers || ✅<ref name=gm1-p2></ref>||✅<ref name=mkii-p92></ref>||✅<ref name=xg-p24></ref>||(TODO: How does this affect RPNs and NRPNs?) | |||
|- | |||
| 123 || All Notes Off || ✅<ref name=gm1-p2></ref>||✅<ref name=mkii-p92></ref>||✅<ref name=xg-p24></ref>|| Standard but optional MIDI feature,<ref>MIDI 1.0 Detailed Specification 4.2.1, page 24.</ref> required by GM. | |||
|- | |||
| 124 || Omni Off || ❌||⚠️<ref name=mkii-p92></ref>||⚠️<ref name=xg-p25>Yamaha XG Specifications, v 2.00, page 25</ref>|| rowspan=2 | Standard but optional MIDI feature,<ref name=midi-modes>MIDI 1.0 Detailed Specification 4.2.1, page 20.</ref> not required by GM. "Omni" means each part responds to all channels,<ref name=midi-modes></ref> which is not appropriate for a GM synth, so changing to/from Omni mode is not possible. The message is treated only as an All Notes Off.<ref name=mkii-p92></ref><ref name=xg-p25></ref> | |||
|- | |||
| 125 || Omni On || ❌||⚠️<ref name=mkii-p93>Roland SC-55mkII Owner's Manual, page 93.</ref>||⚠️<ref name=xg-p25></ref> | |||
|- | |||
| 126 || Mono On (Poly Off) || ❌||✅<ref name=mkii-p93></ref>||✅<ref name=xg-p25></ref>|| Standard but optional MIDI feature,<ref name=midi-modes>MIDI 1.0 Detailed Specification 4.2.1, page 20.</ref> not required by GM. On GS and XG, this message sets the part to monophonic mode and performs an All Sound Off.<ref name=mkii-p93></ref><ref name=xg-p25></ref> GS and XG ignore the value in the message,<ref name=mkii-p93></ref><ref name=xg-p25></ref> but note that it has a meaning in the MIDI specification! | |||
|- | |||
| 127 || Mono Off (Poly On) || ❌||✅<ref name=mkii-p93></ref>||✅<ref name=xg-p25></ref>|| Standard but optional MIDI feature,<ref name=midi-modes>MIDI 1.0 Detailed Specification 4.2.1, page 20.</ref> not required by GM. On GS and XG, this message sets the part to polyphonic mode and performs an All Sound Off.<ref name=mkii-p93></ref><ref name=xg-p25></ref> GS and XG ignore the value in the message,<ref name=mkii-p93></ref><ref name=xg-p25></ref> but note that it has a meaning in the MIDI specification! | |||
|} | |||
==RPN messages== | |||
{| class="wikitable" | |||
! RPN<br>MSB | |||
! RPN<br>LSB | |||
! RPN name | |||
! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | |||
! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | |||
! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | |||
|- | |||
| 0 || 0 || Pitch Bend Sensitivity || ✅<ref name=gm1-p2></ref> || ✅<ref name=mkii-p92></ref> || ✅<ref name=xg-p24>Yamaha XG Specifications, v 2.00, page 24</ref> | |||
|- | |||
| 0 || 1 || Fine Tuning || ✅<ref name=gm1-p2></ref> || ✅<ref name=mkii-p92></ref> || ✅<ref name=xg-p24></ref> | |||
|- | |||
| 0 || 2 || Coarse Tuning || ✅<ref name=gm1-p2></ref> || ✅<ref name=mkii-p92></ref> || ✅<ref name=xg-p24></ref> | |||
|} | |} | ||
==NRPN messages== | |||
(TODO: add non-GS XG NRPNs) | |||
{| class="wikitable" | |||
! NRPN<br>MSB | |||
! NRPN<br>LSB | |||
! NRPN name | |||
! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | |||
! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | |||
! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | |||
! Notes | |||
|- | |||
| 1 || 8 || Vibrato Rate<ref name=xg-p22></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 9 || Vibrato Depth<ref name=xg-p22></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 10 || Vibrato Delay<ref name=xg-p22></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 32 || Filter Cutoff Frequency<ref name=xg-p22></ref><br>''or'' TVF cutoff frequency<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 33 || Filter Resonance<ref name=xg-p22></ref><br>''or'' TVF resonance<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 99 || EG Attack Time<ref name=xg-p22></ref><br>''or'' TVF&TVA Env. Attack time<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 100 || EG Decay Time<ref name=xg-p22></ref><br>''or'' TVF&TVA Env. Decay time<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p22></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 1 || 102 || EG Release<ref name=xg-1.32-p13>Yamaha XG Specifications, v 1.32, page 13 (omitted in v 2.00; by mistake maybe?)</ref><br>''or'' TVF&TVA Env. Release time<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-1.32-p13></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 24 || (key #) || Drum Pitch Coarse<ref name=xg-p23></ref><br>''or'' Pitch coarse of drum instrument<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p23></ref> || Relative adjustment (64 is zero change) | |||
|- | |||
| 26 || (key #) || Drum Level<ref name=xg-p23></ref><br>''or'' TVA level of drum instrument<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p23></ref> || | |||
|- | |||
| 28 || (key #) || Drum Pan<ref name=xg-p23></ref><br>''or'' Panpot of drum instrument<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p23></ref> || | |||
|- | |||
| 29 || (key #) || Drum Reverb Send<ref name=xg-p23></ref><br>''or'' Reverb send level of drum instrument<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p23></ref> || | |||
|- | |||
| 30 || (key #) || Drum Chorus Send<ref name=xg-p23></ref><br>''or'' Chorus send level of drum instrument<ref name=mkii-p91></ref> || ❌ || ✅<ref name=mkii-p91></ref> || ✅<ref name=xg-p23></ref> || | |||
|- | |||
| 31 || (key #) || Drum Variation Send<ref name=xg-p23></ref><br>''or'' Delay send level of drum instrument<ref name=88-p7-22></ref> || ❌ || [88]<ref name=88-p7-22></ref> || ✅<ref name=xg-p23></ref> || On XG: Variation send level.<ref name=xg-p21></ref><br>Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.<ref name=88-p7-22></ref> | |||
|} | |||
==System Exclusive messages== | |||
System Exclusive (SysEx) messages are required for advanced features like changing effect types, configuring controllers/LFOs, etc. There are a huge number of them and they are completely incompatible between standards, so they are out of scope for this article. The following are only a few essential ones: | |||
{| class="wikitable" | |||
! SysEx (hex) | |||
! Name | |||
! style="background: white; | [[File:General MIDI logo.png|50px|General MIDI]] | |||
! style="background: white; | [[File:Roland GS logo.png|50px|Roland GS]] | |||
! style="background: white; | [[File:Yamaha XG logo.png|50px|Yamaha XG]] | |||
! Notes | |||
|- | |||
| <tt>F0 7E 7F 09 01 F7</tt> || General MIDI Level 1 System On || ✅ || ✅ || ✅ || Sets module to GM1 mode and resets settings for all parts. Broadcast message addressed to all devices.<br>Note: some early GS devices (early SC-55 models) don't support GM and won't respond to this.<br> | |||
|- | |||
| <tt>F0 41 10 42 12 40 00 7F 00 41 F7</tt> || GS Reset || ❌ || ✅ || ❌ || Sets module to GS mode and resets settings for all parts. Addressed to device 17 (default device number). | |||
|- | |||
| <tt>F0 43 10 4C 00 00 7E 00 F7</tt> || XG System On || ❌ || ❌ || ✅ || Sets module to XG mode and resets settings for all parts. Addressed to device 1 (default device number). | |||
|- | |||
| <tt>F0 41 10 42 12 40 1A 15 02 0F F7</tt> || GS: Patch parameters, Part 11 § USE FOR RHYTHM PART → MAP2 || ❌ || ✅ || ❌ || Sets part 11 (mapped to channel 11) to drums mode, using the 2nd set of drum parameters. Addressed to device 17 (default device number).<br>For XG, you can use a Bank Select MSB instead (see above). | |||
|} | |||
== References == | == References == |
Latest revision as of 02:16, 8 September 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)
- 👻 — Undocumented, but appears to work on some devices in testing
- ⚠️ — Supported, but not useful
- *️⃣ — 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 | Notes | |||
---|---|---|---|---|---|
0 | Bank Select MSB | ❌ | *️⃣[1] | *️⃣[2] | On GS, this selects variation instruments. On XG, this selects banks. Common numbers: |
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:
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 |
❌ | 👻[9] | ✅[8] | On XG, relative adjustment of filter resonance (64 is zero change).[8] On GS, there is no documented support for it, but there is an NRPN. SC modules from at least the SC-88VL onwards appear to respond to it anyway and behave like XG.[9] |
72 | Sound Controller 3 or Release Time |
❌ | 👻[9] | ✅[8] | On XG, relative adjustment of envelope release time (64 is zero change).[8] On GS, there is no documented support for it, but there is an NRPN. SC modules from at least the SC-88VL onwards appear to respond to it anyway and behave like XG.[9] |
73 | Sound Controller 4 or Attack Time |
❌ | 👻[9] | ✅[8] | On XG, relative adjustment of envelope attack time (64 is zero change).[8] On GS, there is no documented support for it, but there is an NRPN. SC modules from at least the SC-88VL onwards appear to respond to it anyway and behave like XG.[9] |
74 | Sound Controller 5 or Brightness |
❌ | 👻[9] | ✅[10] | On XG, relative adjustment of filter cutoff (64 is zero change).[10] On GS, there is no documented support for it, but there is an NRPN. SC modules from at least the SC-88VL onwards appear to respond to it anyway and behave like XG.[9] |
84 | Portamento Control | ❌ | ✅[6] | ✅[10] | Value is MIDI note number.[6] On XG, ignores Portamento Time (always 0).[10] |
91 | Effect 1 depth or Reverb send[6] |
❌ | ✅[6] | ✅[10] | On GS and XG: Reverb send level[10][6] |
93 | Effect 3 depth or Chorus send[6] |
❌ | ✅[6] | ✅[10] | On GS and XG: Chorus send level[10][6] |
94 | Effect 4 depth or Variation send or Delay send[11] |
❌ | [88][11] | ✅[10] | On XG: Variation send level.[10] XGLite does not require variation effects to be supported.[12] Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.[11] |
96 | Data increment | ❌ | ❌ | *️⃣[13] | (Used for RPNs and NRPNs) (TODO: check this) |
97 | Data decrement | ❌ | ❌ | *️⃣[13] | (Used for RPNs and NRPNs) (TODO: check this) |
98 | NRPN LSB | ❌ | *️⃣[6] | *️⃣[13] | (Used for NRPNs) |
99 | NRPN MSB | ❌ | *️⃣[6] | *️⃣[13] | (Used for NRPNs) |
100 | RPN LSB | *️⃣ | *️⃣[14] | *️⃣[15] | (Used for RPNs) |
101 | RPN MSB | *️⃣ | *️⃣[14] | *️⃣[15] | (Used for RPNs) |
Channel Mode messages | |||||
CC # | Name | Notes | |||
120 | All Sound Off | ❌ | ✅[14] | ✅[16] | Standard but optional MIDI feature, not required by GM. Cuts off currently played sounds on the channel as soon as possible,[17] skipping the "release" part of sounds, unlike All Notes Off.[16] |
121 | Reset All Controllers | ✅[3] | ✅[14] | ✅[16] | (TODO: How does this affect RPNs and NRPNs?) |
123 | All Notes Off | ✅[3] | ✅[14] | ✅[16] | Standard but optional MIDI feature,[18] required by GM. |
124 | Omni Off | ❌ | ⚠️[14] | ⚠️[19] | Standard but optional MIDI feature,[20] not required by GM. "Omni" means each part responds to all channels,[20] which is not appropriate for a GM synth, so changing to/from Omni mode is not possible. The message is treated only as an All Notes Off.[14][19] |
125 | Omni On | ❌ | ⚠️[21] | ⚠️[19] | |
126 | Mono On (Poly Off) | ❌ | ✅[21] | ✅[19] | Standard but optional MIDI feature,[20] not required by GM. On GS and XG, this message sets the part to monophonic mode and performs an All Sound Off.[21][19] GS and XG ignore the value in the message,[21][19] but note that it has a meaning in the MIDI specification! |
127 | Mono Off (Poly On) | ❌ | ✅[21] | ✅[19] | Standard but optional MIDI feature,[20] not required by GM. On GS and XG, this message sets the part to polyphonic mode and performs an All Sound Off.[21][19] GS and XG ignore the value in the message,[21][19] but note that it has a meaning in the MIDI specification! |
RPN messages
RPN MSB |
RPN LSB |
RPN name | |||
---|---|---|---|---|---|
0 | 0 | Pitch Bend Sensitivity | ✅[3] | ✅[14] | ✅[16] |
0 | 1 | Fine Tuning | ✅[3] | ✅[14] | ✅[16] |
0 | 2 | Coarse Tuning | ✅[3] | ✅[14] | ✅[16] |
NRPN messages
(TODO: add non-GS XG NRPNs)
NRPN MSB |
NRPN LSB |
NRPN name | Notes | |||
---|---|---|---|---|---|---|
1 | 8 | Vibrato Rate[13] | ❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 9 | Vibrato Depth[13] | ❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 10 | Vibrato Delay[13] | ❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 32 | Filter Cutoff Frequency[13] or TVF cutoff frequency[6] |
❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 33 | Filter Resonance[13] or TVF resonance[6] |
❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 99 | EG Attack Time[13] or TVF&TVA Env. Attack time[6] |
❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 100 | EG Decay Time[13] or TVF&TVA Env. Decay time[6] |
❌ | ✅[6] | ✅[13] | Relative adjustment (64 is zero change) |
1 | 102 | EG Release[22] or TVF&TVA Env. Release time[6] |
❌ | ✅[6] | ✅[22] | Relative adjustment (64 is zero change) |
24 | (key #) | Drum Pitch Coarse[15] or Pitch coarse of drum instrument[6] |
❌ | ✅[6] | ✅[15] | Relative adjustment (64 is zero change) |
26 | (key #) | Drum Level[15] or TVA level of drum instrument[6] |
❌ | ✅[6] | ✅[15] | |
28 | (key #) | Drum Pan[15] or Panpot of drum instrument[6] |
❌ | ✅[6] | ✅[15] | |
29 | (key #) | Drum Reverb Send[15] or Reverb send level of drum instrument[6] |
❌ | ✅[6] | ✅[15] | |
30 | (key #) | Drum Chorus Send[15] or Chorus send level of drum instrument[6] |
❌ | ✅[6] | ✅[15] | |
31 | (key #) | Drum Variation Send[15] or Delay send level of drum instrument[11] |
❌ | [88][11] | ✅[15] | On XG: Variation send level.[10] Not supported on GS/SC-55, but SC-88 and onwards use this for Delay Send Level.[11] |
System Exclusive messages
System Exclusive (SysEx) messages are required for advanced features like changing effect types, configuring controllers/LFOs, etc. There are a huge number of them and they are completely incompatible between standards, so they are out of scope for this article. The following are only a few essential ones:
References
- ↑ 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.0 2.1 2.2 2.3 2.4 2.5 2.6 Yamaha XG Specifications, v 2.00, page 16.
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 General MIDI System Level 1 Specification, page 2
- ↑ 4.0 4.1 Yamaha XG Specifications, v 2.00, page 17.
- ↑ 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.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.0 7.1 7.2 7.3 7.4 7.5 Yamaha XG Specifications, v 2.00, page 19.
- ↑ 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.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 Tested by the following users:
- hikari_no_yume has tested and found that her SC-88VL responds to controllers 71 to 74 in GS mode.
- purps has tested and found that Roland Sound Canvas VA responds to controllers 71 to 74 in GS mode.
- ↑ 10.00 10.01 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.10 Yamaha XG Specifications, v 2.00, page 21
- ↑ 11.0 11.1 11.2 11.3 11.4 11.5 Roland SC-88 Owner's Manual, page 7 - 22.
- ↑ See Yamaha XG Specifications, v 2.00, Attached Chart 1 pages 5 to 7 (all Variation/Insertion effects marked as optional for XGLite).
- ↑ 13.00 13.01 13.02 13.03 13.04 13.05 13.06 13.07 13.08 13.09 13.10 13.11 13.12 13.13 13.14 13.15 13.16 13.17 Yamaha XG Specifications, v 2.00, page 22
- ↑ 14.0 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 Roland SC-55mkII Owner's Manual, page 92.
- ↑ 15.00 15.01 15.02 15.03 15.04 15.05 15.06 15.07 15.08 15.09 15.10 15.11 15.12 15.13 Yamaha XG Specifications, v 2.00, page 23
- ↑ 16.0 16.1 16.2 16.3 16.4 16.5 16.6 Yamaha XG Specifications, v 2.00, page 24
- ↑ MIDI 1.0 Detailed Specification 4.2.1, page 25.
- ↑ MIDI 1.0 Detailed Specification 4.2.1, page 24.
- ↑ 19.0 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 Yamaha XG Specifications, v 2.00, page 25
- ↑ 20.0 20.1 20.2 20.3 MIDI 1.0 Detailed Specification 4.2.1, page 20.
- ↑ 21.0 21.1 21.2 21.3 21.4 21.5 21.6 Roland SC-55mkII Owner's Manual, page 93.
- ↑ 22.0 22.1 Yamaha XG Specifications, v 1.32, page 13 (omitted in v 2.00; by mistake maybe?)