Reload Frameset Home German Pages

System Parameter + MIDI Controller:
Basics of XG MIDI programming !

Contents:

Introduction
1. XG System Parameter
2. Control Change Messages
3. NRPN Messages (Non-Registered Parameter Number)
4. RPN Messages (Registered Parameter Number)

Introduction

At this page you can find information to the basic XG system settings (Main Volume, XG System On etc.) and the XG channel and drum instrument programmation via Control Change, NRPN and RPN messages. Control Change, NRPN and RPN messages will always take effect on EVERY Part, which has been assigned to the particular MIDI channel - this is a big difference to the SysEx Part messages at page XG Part Setup, which will take effect only on the specified Part. You won't remark this difference as long as you keep the default XG Part to MIDI channel assignments (Part Number = MIDI channel), but this changes when you assign several Parts to the same MIDI channel. In this case a reduction of the Volume via Control Change Message would take effect on all Parts assigned to this MIDI channel and you could realize a common fade out for example.

Back to the top

1. XG System Parameter

The following table contains all basic XG System Messages. Very important is the command 'XG SYSTEM ON' which is necessary to enable the 'XG Mode' of a XG synthesizer: only in XG mode you'll be able to use the MIDI commands mentioned on this pages (many XG synths offer further modes like a 'Performance Mode').

Sometimes it's useful to enable the Roland GS compatible 'TG300B Mode' or the 'GM Mode', especially if you want to playback MIDI files produced with Non-XG-equipment: in TG300B mode the different banks of an instrument are selectable via Bank Select MSB (instead of Bank Select LSB in XG mode), which is a common standard on many other synths (Roland, GS compatible synths etc.). Not all XG synths offer the TG300B mode - please read the manual of your particular XG synth for further information.

The adjustment of the 'MASTER TUNE' is a little bit difficult because you have to use 'Nibblized MIDI Data'. At Chapter 12 of my page 'Reference Tables' you'll find detailled information how to calculate the data entry values for this MIDI message.

SysEx String (Hex)   Data Range
Hex (Dec)
Parameter Description / Range Default Value
Hex (Dec)
F0,7F,7F,04,01,00,XX,F7 00h - 7Fh
(0d - 127d)
MASTER VOLUME
(as Universal Realtime Message)
0 - 127 7Fh (127d)
F0,43,10,4C,00,00,04,XX,F7 00h - 7Fh
(0d - 127d)
MASTER VOLUME
(as None Realtime Message)
0 - 127 7Fh (127d)
F0,43,10,4C,00,00,06,XX,F7 28h - 58h
(40d - 88d)
MASTER TRANSPOSE 40...64...88:
-24...0...+24 (Semitones)
40h (64d)
F0,43,10,4C,00,00,00,0W,0X,0Y,0Z,F7 00h,00h,00h,00h -
00h,07h,0Fh,0Fh

(0d - 2047d)
MASTER TUNE 0...1024...2047:
-102.4...0...+102.3 (Cent)
(view Chapter 12 at page
'Reference Tables')
00h,04h,00h,00h (1024d)
F0,43,10,4C,00,00,7D,00,F7 DRUM SETUP 1 RESET Please read page Drum Setup 1 +2 for further information
F0,43,10,4C,00,00,7D,01,F7 DRUM SETUP 2 RESET Please read page Drum Setup 1 +2 for further information.
F0,43,10,4C,00,00,7E,00,F7 XG SYSTEM ON Enables the XG mode.
Since approximately 50ms is required to execute this message, be sure to leave an appropriate interval before the subsequent message.
F0,43,10,4C,00,00,7F,00,F7 ALL PARAMETER RESET XG Reset (Restores the factory settings of a XG synth).
Since approximately 50ms is required to execute this message, be sure to leave an appropriate interval before the subsequent message.
F0,41,10,42,12,40,00,7F,00,41,F7 TG300B RESET Enables the TG300B mode (a Roland GS compatible mode).
Since approximately 50ms is required to execute this message, be sure to leave an appropriate interval before the subsequent message.
F0,7E,7F,09,01,F7 GENERAL MIDI ON Enables General MIDI mode (Bank Select and NRPN messages will be ignored).
Since approximately 50ms is required to execute this message, be sure to leave an appropriate interval before the subsequent message.
Back to the top

2. Control Change Messages

The following table contains all available Control Change Messages (often called Standard MIDI Controller; Controller number=0-127) for XG synths. In 'GM mode' many of these controllers are not available and the effects Reverb, Chorus and Variation effect will be disabled. I've sorted these controllers into several logical groups, because this will be more useful for you than to sorte them by controller number.

A. Selection of an instrument or a drum kit
B. Volume, Pan, Modulation, Expression and Effect Send
C. Portamento Settings
D. Filter Settings
E. EG Settings
F. Hold-, Sostenuto- and Soft-Pedal
G. Controller for RPN and NRPN messages
H. MIDI Channel Reset Messages

A. Selection of an instrument or a drum kit
(After sending Bank Select MSB and/or LSB you always have to send a Program Change Message)
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
0 0,
63,
64,
126,
127
BANK SELECT MSB
(in XG mode)
0=Normal Voice,
63=User Voice (QS300),
64=SFX Voice,
126=SFX Kit,
127=Drum Kit)
0 0 - 127 BANK SELECT MSB
(in TG300B mode)
Used to select different banks of an instrument in TG300B mode
32 0 - 127 BANK SELECT LSB
(in XG mode)
Used to select different banks of an instrument ('Normal voice') in XG mode
B. Volume, Pan, Modulation, Expression and Effect Send
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
7 0 - 127 MAIN VOLUME Default Value=100
10 0 - 127 PANORAMA 0...64...127= Left...Center...Right
1 0 - 127 MODULATION Vibrato Depth (Modulation Wheel)
11 0 - 127 EXPRESSION Messages which control intonation expression of each Part
Default Value=127
91 0 - 127 REVERB SEND LEVEL
(Effect1 Depth)
Default Value=64
93 0 - 127 CHORUS SEND LEVEL
(Effect3 Depth)
Default Value=0
94 0 - 127 VARIATION EFFECT SEND LEVEL
(Effect4 Depth)
Default Value=0
C. Portamento Settings
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
65 0 - 127 PORTAMENTO ON/OFF Messages which control portamento on/off.
0-63=OFF, 64-127=ON
5 0 - 127 PORTAMENTO TIME Adjusts speed of pitch glide between successively played notes when Portamento is enabled.
84 0 - 127 PORTAMENTO CONTROL Messages which apply a portamento between the currently-sounding note and the subsequent note.
Portamento Control is transmitted specifying the Note On Key of the currently-sounding note (Portamento Source Key number between 0-127). When a Portmento Control message is received, the currently sounding pitch will change with a Portamento Time of 0 to the next Key On key on the same channel.
Even if the Multi Part parameter RECEIVE PORTAMENTO = OFF, the Portamento Control message will be received.
D. Filter Settings
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
74 0 - 127 BRIGHTNESS
(FILTER CUTOFF FREQUENCY)
Messages which adjust the filter cutoff frequency set for each Voice.
0...64...127= -64...0...+63
71 0 - 127 HARMONIC CONTENT
(FILTER RESONANCE)
Messages which adjust the resonance set for each Voice.
0...64...127= -64...0...+63
E. EG Settings
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
73 0 - 127 ATTACK TIME Messages which adjust the envelope attack time set for each Voice.
0...64...127= -64...0...+63
72 0 - 127 RELEASE TIME Messages which adjust the envelope release time set for each Voice.
0...64...127= -64...0...+63
F. Hold-, Sostenuto- and Soft-Pedal
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
64 0 - 127 HOLD PEDAL ON/OFF Messages which control sustain pedal on/off.
Holding specific notes and then pressing and holding the hold pedal will sustain those notes as well as subsequent played notes, until the pedal is released.
0-63=OFF, 64-127=ON
66 0 - 127 SOSTENUTO PEDAL ON/OFF Messages which control sostenuto pedal on/off.
Holding specific notes and then pressing and holding the sostenuto pedal will sustain those notes as you play subsequent notes, until the pedal is released.
0-63=OFF, 64-127=ON
67 0 - 127 SOFT PEDAL ON/OFF Messages which control soft pedal on/off.
Notes played while holding the soft pedal will be dampened.
0-63=OFF, 64-127=ON
G. Controller for RPN and NRPN messages
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
98 0 - 126,
127
NRPN LSB ADDRESS Specifies the LSB address of a NRPN controller;
Value 127 (=Null) will erase the last received address
99 0 - 126,
127
NRPN MSB ADDRESS Specifies the MSB address of a NRPN controller;
Value 127 (=Null) will erase the last received address
100 0 - 126,
127
RPN LSB ADDRESS Specifies the LSB address of a RPN controller;
Value 127 (=Null) will erase the last received address
101 0 - 126,
127
RPN MSB ADDRESS Specifies the MSB address of a RPN controller;
Value 127 (=Null) will erase the last received address
6 0 - 127 DATA ENTRY MSB
(for RPN and NRPN)
Messages which set the value MSB for the parameter specified by RPN/NRPN.
38 0 - 127 DATA ENTRY LSB
(for RPN and NRPN)
Messages which set the value LSB for the parameter specified by RPN/NRPN.
96 Not Used
(Ignored)
DATA INCREMENT
(for RPN)
Messages which increase the MSB value of the specified RPN controller in steps of 1.
The data byte is ignored.
97 Not Used
(Ignored)
DATA DECREMENT
(for RPN)
Messages which decrease the MSB value of the specified RPN controller in steps of 1.
The data byte is ignored.
H. MIDI Channel Reset Messages
Controller-
Number
(Decimal)
Data Range
(Decimal)
Parameter Description / Range
120 Not Used
(Ignored)
ALL SOUNDS OFF Terminates all sounds currently sounding on the specified channel. However, the status of channel messages such as Note On and Hold On is maintained.
The data byte is ignored.
121 Not Used
(Ignored)
RESET ALL CONTROLLERS The values of the following controllers will be reset to the defaults:
Pitch Bend Change (+/- 0), Channel Aftertouch (0), Polyphonic Aftertouch (0), Modulation (0), Expression (127), Hold Pedal (0), Portamento (0), Sostenuto Pedal (0), Soft Pedal (0), Portamento Control (cancels the Portamento Source Key Number that was received).
The data byte is ignored.
123 Not Used
(Ignored)
ALL NOTES OFF Terminates all notes currently on for the specified channel. However, if Hold1 or Sostenuto is on, notes will continue sounding until these are turned off.
The data byte is ignored.
124 Not Used
(Ignored)
OMNI OFF Disables the 'Multi Tembral Mode' of a XG synth. Note: many XG synths (DB50XG, MU10...) don't allow to disable the Multi Tembral Mode and perform after this message the same function as when an All Notes Off message is received.
The data byte is ignored.
125 Not Used
(Ignored)
OMNI ON Enables the 'Multi Tembral Mode' of a XG synth. Note: many XG synths (DB50XG, MU10...) don't allow to disable the Multi Tembral Mode and perform after this message the same function as when an All Notes Off message is received.
The data byte is ignored.
126 Not Used
(Ignored)
MONO MODE Sets the particular MIDI channel to Mono Mode (Mode 4 : m = 1).
The data byte is ignored.
127 Not Used
(Ignored)
POLY MODE Sets the particular MIDI channel to Poly Mode (Mode 3).
The data byte is ignored.
Back to the top

3. NRPN Messages (Non-Registered Parameter Number)

With NRPN messages you can adjust a Voice's vibrato, filter, EG and drum setup parameter settings.

First send the NRPN MSB and NRPN LSB (via CONTROL CHANGE 99 and 98) to specify the parameter which is to be controlled. Then use DATA ENTRY MSB (CONTROL CHANGE 6) to set the value of the specified parameter. Once the NRPN parameter has been set for a channel, subsequent data entry will be recognized as the same NRPN's value change. Therefore, after you use the NRPN, you should set a Null value (NRPN MSB=127d, NRPN LSB=127d) to avoid an unexpected result.

The drum setup parameters are only available if the Part assigned to the MIDI channel is in mode 'Drum Setup 1' or 'Drum Setup 2'. In Part mode 'Drum' no values will be changed. Further drum setup parameters via SyEx messages are described at page Drum Setup 1 + 2.

NRPN-Address
MSB / LSB
Hex (Dec)
Data Range
MSB
Hex (Dec)
Parameter Description / Range Notes
Vibrato Settings
01h / 08h
(1d / 8d)
00h - 7Fh
(0d - 127d)
VIBRATO RATE 0...64...127:
-64...0...+63
 
01h / 09h
(1d / 9d)
00h - 7Fh
(0d - 127d)
VIBRATO DEPTH 0...64...127:
-64...0...+63
 
01h / 0Ah
(1d / 10d)
00h - 7Fh
(0d - 127d)
VIBRATO DELAY 0...64...127:
-64...0...+63
 
Filter Settings
01h / 20h
(1d / 32d)
00h - 7Fh
(0d - 127d)
FILTER CUTOFF FREQUENCY 0...64...127:
-64...0...+63
 
01h / 21h
(1d / 33d)
00h - 7Fh
(0d - 127d)
FILTER RESONANCE 0...64...127:
-64...0...+63
 
EG Settings
01h / 63h
(1d / 99d)
00h - 7Fh
(0d - 127d)
EG ATTACK TIME 0...64...127:
-64...0...+63
 
01h / 64h
(1d / 100d)
00h - 7Fh
(0d - 127d)
EG DECAY TIME 0...64...127:
-64...0...+63
 
01h / 66h
(1d / 102d)
00h - 7Fh
(0d - 127d)
EG RELEASE TIME 0...64...127:
-64...0...+63
 
Drum Instrument Settings
For NRPN LSB you have to use the drum instrument note number RR: 13d - 91d (0Dh - 5Bh).
The drum setup parameters are only available if the Part assigned to the MIDI channel is in mode 'Drum Setup 1' or 'Drum Setup 2'. In Part mode 'Drum' no values will be changed.
NRPN-Address
MSB / LSB
Hex (Dec)
Data Range
MSB
Hex (Dec)
Parameter Description / Range Notes
14h / RRh
(20d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
FILTER CUTOFF FREQUENCY
0...64...127:
-64...0...+63
 
15h / RRh
(21d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
FILTER RESONANCE
0...64...127:
-64...0...+63
 
16h / RRh
(22d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
EG ATTACK RATE
0...64...127:
-64...0...+63
 
17h / RRh
(23d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
EG DECAY RATE
0...64...127:
-64...0...+63
EG Decay1 and Decay2 of a drum instrument will be changed simultaneously.
18h / RRh
(24d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
PITCH COARSE
0...64...127:
-64...0...+63
 
19h / RRh
(25d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
PITCH FINE
0...64...127:
-64...0...+63
 
1Ah / RRh
(26d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
LEVEL
0 - 127  
1Ch / RRh
(28d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
PANORAMA
0: Random,
1...64...127:
Left...Center...Right
 
1Dh / RRh
(29d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
REVERB SEND LEVEL
0 - 127  
1Eh / RRh
(30d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
CHORUS SEND LEVEL
0 - 127  
1Fh / RRh
(31d / RRd)
00h - 7Fh
(0d - 127d)
DRUM INSTRUMENT
VARIATION EFFECT SEND LEVEL
0 - 127  
Cancel NRPN number
7Fh / 7Fh
(127d / 127d)
  NRPN = Null A data entry of 7Fh (127d) for NRPN address MSB and LSB via CONTROL CHANGE 99 and 98 will erase the NRPN address.
Back to the top

4. RPN Messages (Registered Parameter Number)

With RPN messages you can adjust a Part's pitch bend sensitivity and tuning (coarse/fine).

First send the RPN MSB and RPN LSB (via CONTROL CHANGE 101 and 100) to specify the parameter which is to be controlled. Then use DATA ENTRY MSB (CONTROL CHANGE 6) and DATA ENTRY LSB (CONTROL CHANGE 38) to set the value of the specified parameter. With CONTROL CHANGE 96 and 97 you can increase or decrease the MSB value in steps of 1. Once the RPN parameter has been set for a channel, subsequent data entry will be recognized as the same RPN's value change. Therefore, after you use the RPN, you should set a Null value (RPN MSB=127d, RPN LSB=127d) to avoid an unexpected result.

RPN-Address
MSB / LSB
Hex (Dec)
Data Range
MSB
Hex (Dec)
Data Range
LSB
Hex (Dec)
Parameter Description / Range Default Values
00h / 00h
(0d / 0d)
00h - 18h
(0d - 24d)
Not Used
(Ignored)
PITCH BEND SENSIVITY 0 to +/- 24 Semitones Default MSB Value= 02h (2d),
the LSB value is ignored.
00h / 01h
(0d / 1d)
00h - 7Fh
(0d - 127d)
11h (17d) FINE TUNING 0...64...127:
-64...0...+63
Default MSB Value= 40h (64d),
The LSB value = 11h (17d).
00h / 02h
(0d / 2d)
28h - 58h
(40d - 88d)
Not Used
(Ignored)
COARSE TUNING 40...64...88:
-24...0...+24 (Semitones)
Default MSB Value= 40h (64d),
the LSB value is ignored.
Cancel RPN number
7Fh / 7Fh
(127d / 127d)
    RPN = Null A data entry of 7Fh (127d) for RPN address MSB and LSB via CONTROL CHANGE 101 and 100 will erase the RPN address.
Back to the top

Back to home

C/O 2002-2012: Werner Ogrodnik (Cologne, Germany)