XG is the first and only format to specifically provide support for one or more optional external audio inputs, called “A/D channels.” The digital signal from these channels (derived from the onboard A/D converter) is processed in the same way as the tone generator signals being produced by MIDI channels: overall level and pan position can be controlled in realtime, as well as send levels to any or all internal effects. System exclusive messages are used to set A/D channel input gain, MIDI receive channel number, and on-off reception status for incoming volume (cc #7), pan (cc #10), and expression (cc #11) messages. System exclusive messages are also used to select from among various A/D channel presets, each of which call up complete settings complementary to the instrument type. For example, an A/D preset for a mic input might include reverb and compression effects, whereas one for guitar might include chorusing, echo and distortion effects. Control Change Messages One of the most important aspects of making music is expressivity. The trained musician is able to impart subtle changes in volume, timbre, and pitch as notes are played. This integral part of the musician’s craft is what makes music really come to life. MIDI enables expressivity in electronic musical instruments through the use of special channel messages called control change (“cc”) messages. Here, realtime controllers such as wheels, sliders, and footpedals—or software emulations of these devices—can be used to impart change to a sound as it is playing. The MIDI Specification defines 128 different controllers, each given a unique control number from 0 to 127. Some of these numbers are defined (such as the previously discussed Bank Select MSB and LSB, provided by cc #0 and cc #32, respectively), while others are undefined and are reserved for future use. The most commonly used defined controllers are cc #1 (Modulation), cc #7 (Volume), cc #10 (Panpot), cc #11 (Expression), and cc #64 (Sustain). All MIDI controllers have at least 8-bit resolution, so they can impart data values from 0 (full off) to 127 (full on), with a value of 64 (40h) representing a center detented position, if one exists. In addition, control numbers 0 through 31 can be given 14-bit resolution (allowing them to impart data values from 0 to 16,383) when used in conjunction with control numbers 32 through 63, which are reserved for optional use as the LSB (Least Significant Bit) for control numbers 0 through 31. This is the reason why the Bank Select message can allow access to up to 16,384 different voices when both the MSB (cc #0) and LSB (cc #32) are used. Control numbers 16 - 19 and 80 - 83 are defined as “General Purpose Controllers,” with no intrinsic function assigned to them. They may be freely used by a manufacturer for any added functions that require the transmission or reception of undefined controller data. Control numbers 64 through 69 are assigned to functions normally associated with switches such as sustain or soft pedals (although they can also be used to send any continuous value from 0 to 127). For these controllers, a data value of 0 is used to represent a “switch off,” and a data value of 127 is used to represent a “switch on.” Control numbers 70 through 79 are defined as being “Sound Controllers” and, although manufacturers have the freedom to map functions to them, are intended to be used to alter voice parameters in real time. Default assignments for five of these controllers have been specified as follows: Control numbers 120 - 127 are used to carry what are known as Channel Mode messages—see the “Channel Mode Messages” section in this Guidebook for more information. For reference, a chart in this Guidebook shows a complete listing of commonly used MIDI controllers along with an indication as to whether these messages are utilized by GM-compatible, GS-compatible, or XG-compatible instruments.XG Guidebook Control # Name Default Assignment 70 Sound Controller #1 Sound Variation 71 Sound Controller #2 Harmonic Content 72 Sound Controller #3 Release Time 73 Sound Controller #4 Attack Time 74 Sound Controller #5 Brightness As noted in the “Effects” section in this Guidebook, XG instruments must provide a minimum of three internal effects (in contrast to the optional use of internal effects in GS instruments). Despite its name, the Celeste (Detune) Depth message (cc #94) is used by XG-compatible instruments to determine the voice Variation effect send level. External Effects Depth (cc #91) is used to set the amount of reverb send level and Chorus Depth (cc #93) is used to set the amount of chorus send level. For more information, see the “Effects” section of this Guidebook. Another area of XG that expands upon GS is that, for pedal-related controllers (Sustain, Portamento, Sostenuto, and Soft), data values in the range 0 - 63 are considered “Off,” while data values in the range 64 - 127 are considered “On.” XG Guidebook Ctrl. # Decimal Hexi Function(MSB) GM GS XG 0 00 Bank Select No Yes Yes 1 01 Modulation Yes Yes Yes 2 02 Breath Control No No No 3 03 No No No 4 04 Foot Controller No No No 5 05 Portamento Time No Yes Yes 6 06 Data Entry Yes Yes Yes 7 07 Main Volume Yes Yes Yes 8 08 Balance No No No 9 09 No No No 10 0A Panpot Yes Yes Yes 11 0B Expression Yes Yes Yes 12 0C No No No 13 0D No No No 14 0E No No No 15 0F No No No Table of Control Change Messages (page 1 of 8)