MIDI Implementation
This document is the common MIDI implementation for the devices listed below.
• |
LX-17 |
• |
HP603A |
• |
LX-7 |
• |
HP601 |
• |
HP605 |
• |
RP102 |
• |
HP603 |
• |
FP-10 |
•KF-10
•GP607
•DP603
Model: LX-17 / LX-7 / HP605 / HP603 / KF-10 / GP607 / DP603 / HP603A / HP601 / RP102 / FP-10
Date: Sep. 20. 2019 Version: 1.03
99Channel Voice Messages
77Note Off
Status |
2nd byte |
3rd byte |
8nH |
kkH |
vvH |
9nH |
kkH |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
kk = note number: |
|
00H–7FH (0–127) |
vv = note off velocity: |
00H–7FH (0–127) |
* For the drum part, this message is not received by certain instruments.
77Note On
Status |
2nd byte |
3rd byte |
9nH |
kkH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
kk = note number: |
|
00H–7FH (0–127) |
vv = note on velocity: |
01H–7FH (1–127) |
77Control Change
*The value specified by a Control Change message will not be reset even by a Program Change, etc.
66Bank Select (Controller Number 0, 32)
Status |
2nd byte |
3rd byte |
BnH |
00H |
mmH |
BnH |
20H |
llH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
mm, ll = Bank number: |
00H, 00H–7FH, 7FH (bank.1–bank.16384), |
|
|
|
Initial Value = 00 00H (bank.1) |
*If “GM1 System On” is received, Bank Select is not received.
*Bank Select is transmitted at power-on and when “GM2 System On” is received.
*Bank Select processing will be suspended until a Program Change message is received.
66Modulation (Controller Number 1)
Status |
2nd byte |
3rd byte |
BnH |
01H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Modulation depth: |
00H–7FH (0–127) |
*The resulting effect is determined by System Exclusive messages. With the initial settings, this is Pitch Modulation Depth.
66Portamento Time (Controller Number 5)
Status |
2nd byte |
3rd byte |
BnH |
05H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Portamento Time: |
00H–7FH (0–127), Initial value = 00H (0) |
*This adjusts the rate of pitch change when Portamento is ON or when using the Portamento Control. A value of 0 results in the fastest change.
66Data Entry (Controller Number 6, 38)
Status |
2nd byte |
3rd byte |
BnH |
06H |
mmH |
BnH |
26H |
llH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
mm, ll = the value of the parameter specified by RPN |
||
mm = MSB, ll = LSB |
|
|
66Volume (Controller Number 7) |
||
Status |
2nd byte |
3rd byte |
BnH |
07H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Volume: |
|
00H–7FH (0–127), Initial Value = 64H (100) |
* Volume messages are used to adjust the volume balance of each Part.
04 |
Copyright © 2017 ROLAND CORPORATION |
1 |
MIDI Implementation
66Pan (Controller Number 10)
Status |
2nd byte |
3rd byte |
BnH |
0AH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = pan: |
|
00H–40H–7FH (Left–Center–Right), |
|
|
Initial Value = 40H (Center) |
*For Rhythm Parts, this is a relative adjustment of each Instrument’s pan setting.
*Some Tones might not be capable of being panned all the way to the left or right, or might not be able to respond to this message.
66Expression (Controller Number 11)
Status |
2nd byte |
3rd byte |
BnH |
0BH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Expression: |
|
00H–7FH (0–127), Initial Value = 7FH (127) |
*This adjusts the volume of a Part. It can be used independently from Volume messages. Expression messages are used for musical expression within a performance; e.g., expression pedal movements, crescendo and decrescendo.
66Hold 1 (Controller Number 64)
Status |
2nd byte |
3rd byte |
BnH |
40H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value: |
|
00H–7FH (0–127) |
66Portamento (Controller Number 65) |
||
Status |
2nd byte |
3rd byte |
BnH |
41H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value : |
|
00H–7FH (0–127) |
|
|
0–63 = OFF, 64–127 = ON |
66Sostenuto (Controller Number 66) |
||
Status |
2nd byte |
3rd byte |
BnH |
42H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value: |
|
00H–7FH (0–127) |
|
|
0–63 = OFF, 64–127 = ON |
66Soft (Controller Number 67) |
||
Status |
2nd byte |
3rd byte |
BnH |
43H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value: |
|
00H–7FH (0–127) |
* Some Tones will not exhibit any change.
66Resonance (Controller Number 71)
Status |
2nd byte |
3rd byte |
BnH |
47H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv= Resonance value (relative change): |
00H–7FH(-64–0–+63), |
|
|
|
Initial value = 40H (no change) |
* Some Tones will not exhibit any change.
66Release Time (Controller Number 72)
Status |
2nd byte |
3rd byte |
BnH |
48H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
vv = Release Time value (relative change): 00H–7FH(-64–0–+63),
Initial value = 40H (no change)
* Some Tones will not exhibit any change.
66Attack Time (Controller Number 73)
Status |
2nd byte |
3rd byte |
BnH |
49H |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Attack time value (relative change): |
00H–7FH(-64–0–+63), |
|
|
|
Initial value=40H (no change) |
* Some Tones will not exhibit any change.
66Cutoff (Controller Number 74)
Status |
2nd byte |
3rd byte |
BnH |
4AH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Cutoff value (relative change): |
00H–7FH(-64–0–+63), |
|
|
|
Initial value = 40H (no change) |
* Some Tones will not exhibit any change.
66Decay Time (Controller Number 75)
Status |
2nd byte |
3rd byte |
BnH |
4BH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Decay Time value (relative change): |
00H–7FH(-64–0–+63), |
|
|
|
Initial value = 40H (no change) |
* Some Tones will not exhibit any change.
66Vibrato Rate (Controller Number 76)
Status |
2nd byte |
3rd byte |
BnH |
4CH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Vibrato Rate value (relative change): |
00H–7FH(-64–0–+63), |
|
|
|
Initial value = 40H (no change) |
* Some Tones will not exhibit any change.
2
MIDI Implementation
66Vibrato Depth (Controller Number 77)
Status |
2nd byte |
3rd byte |
BnH |
4DH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
vv = Vibrato Depth Value (relative change): 00H–7FH(-64–0–+63),
Initial Value = 40H (no change)
* Some Tones will not exhibit any change.
66Vibrato Delay (Controller Number 78)
Status |
2nd byte |
3rd byte |
BnH |
4EH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
vv = Vibrato Delay value (relative change): 00H–7FH(-64–0–+63),
Initial value=40H (no change)
* Some Tones will not exhibit any change.
66Effect 1 (Reverb Send Level) (Controller Number 91)
Status |
2nd bytes |
3rd byte |
BnH |
5BH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value : |
|
00H–7FH (0–127), Initial Value = 28H (40) |
* This message adjusts the Reverb Send Level of each Part.
66Effect 3 (Chorus Send Level) (Controller Number 93)
Status |
2nd byte |
3rd byte |
BnH |
5DH |
vvH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Control value: |
|
00H–7FH (0–127), Initial Value = 00H (0) |
* This message adjusts the Chorus Send Level of each Part.
66RPN MSB/LSB (Controller Number 100, 101)
Status |
2nd byte |
3rd byte |
BnH |
65H |
mmH |
BnH |
64H |
llH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
mm = upper byte (MSB) of parameter number specified by RPN ll = lower byte (LSB) of parameter number specified by RPN
*The value specified by RPN will not be reset even by messages such as Program Change or Reset All Controller.
**RPN**
The RPN (Registered Parameter Number) messages are expanded control changes, and each function of an RPN is described by the MIDI Standard.
To use these messages, you must first use RPN MSB and RPN LSB messages to specify the parameter to be controlled, and then use Data Entry messages to specify the value of the specified parameter. Once an RPN parameter has been specified, all Data Entry messages received on that channel will modify the value of that parameter. To prevent accidents, it is recommended that you set RPN Null (RPN Number = 7FH 7FH) when you have finished setting the value of the desired parameter. Refer to Section 4. “Examples of actual MIDI messages” <Example 4>
On this instrument, RPN can be used to modify the following parameters.
RPN |
Data entry |
|
MSB LSB |
MSB LSB |
Explanation |
00H 00H |
mmH --- |
Pitch Bend Sensitivity |
|
|
mm: 00H–18H (0–24 semitones), |
|
|
Initial Value = 02H (2 semitones) |
|
|
ll: ignored (processed as 00h) |
|
|
specify up to 2 octaves in semitone steps |
00H 01H |
mmH llH |
Master Fine Tuning |
|
|
mm, ll: 00 00H–40 00H–7F 7FH |
|
|
(-100–0–+99.99 cents), |
|
|
Refer to 4. Supplementary Material, |
|
|
“About Tuning” |
00H 02H |
mmH --- |
Master Coarse Tuning |
|
|
mm: 00H–40H–7FH |
|
|
(-64–0–+63 semitones), |
|
|
ll: ignored (processed as 00h) |
00H 05H |
mmH llH |
Modulation Depth Range |
|
|
mm: 00H–04H (0–4 semitones) |
|
|
ll: 00H–7FH (0–100 cents) |
|
|
100/128 Cent/Value |
7FH 7FH |
--- --- |
RPN null |
|
|
Set a condition in which RPN is not |
|
|
specified. The data entry messages |
|
|
after set RPN null will be ignored. |
|
|
(No Data entry messages are required |
|
|
after RPN null). |
Settings already made will not change. mm, ll: ignored
77Program Change
Status |
2nd byte |
|
CnH |
ppH |
|
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
pp = Program number: |
00H–7FH (prog.1–prog.128) |
*The sound will change beginning with the next note-on after the Program Change is received.
77Channel Pressure
Status |
2nd byte |
|
DnH |
vvH |
|
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
vv = Channel Pressure : |
00H–7FH (0–127) |
*The resulting effect is determined by System Exclusive messages. With the initial settings there will be no effect.
77Pitch Bend Change
Status |
2nd byte |
3rd byte |
EnH |
llH |
mmH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
mm, ll = Pitch Bend value: |
00 00H–40 00H–7F 7FH |
|
|
|
(-8192–0–+8191) |
*The resulting effect is determined by System Exclusive messages. With the initial settings the effect is Pitch Bend.
3
MIDI Implementation
99Channel Mode Messages
77All Sounds Off (Controller Number 120)
Status |
2nd byte |
3rd byte |
BnH |
78H |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
*When this message is received, all currently-sounding notes on the corresponding channel will be turned off immediately.
77Reset All Controllers (Controller Number 121)
Status |
2nd byte |
3rd byte |
BnH |
79H |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
*When this message is received, the following controllers will be set to their reset values.
Controller |
Reset value |
Pitch Bend Change |
±0 (Center) |
Channel Pressure |
0 (off) |
Modulation |
0 (off) |
Expression |
127 (max) |
Hold 1 |
0 (off) |
Portamento |
0 (off) |
Sostenuto |
0 (off) |
Soft |
0 (off) |
RPN |
unset; previously set data will not change |
77All Notes Off (Controller Number 123)
Status |
2nd byte |
3rd byte |
BnH |
7BH |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
*When All Notes Off is received, all notes on the corresponding channel will be turned off.
However if Hold 1 or Sostenuto is ON, the sound will be continued until these are turned off.
77OMNI OFF (Controller Number 124)
Status |
2nd byte |
3rd byte |
BnH |
7CH |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
* The same processing will be carried out as when All Notes Off is received.
77OMNI ON (Controller Number 125)
Status |
2nd byte |
3rd byte |
BnH |
7DH |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
*OMNI ON is only recognized as “All notes off”; the Mode doesn’t change (OMNI OFF remains).
77MONO (Controller Number 126)
Status |
2nd byte |
3rd byte |
BnH |
7EH |
mmH |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
|
mm = mono number : |
01H (1) |
*The same processing will be carried out as when All Notes Off is received, and the corresponding channel will be set to Mode 4 (M=1). Only M=1 is supported.
77POLY (Controller Number 127)
Status |
2nd byte |
3rd byte |
BnH |
7FH |
00H |
n = MIDI channel number: |
0H–FH (ch.1–ch.16) |
*The same processing will be carried out as when All Notes Off is received, and the corresponding channel will be set to Mode 3.
4
MIDI Implementation
99System Exclusive Message
Status |
Data byte |
Status |
F0H |
iiH, ddH, ......, eeH |
F7H |
F0H: |
System Exclusive Message status |
|
ii = ID number: |
An ID number (manufacturer ID) to indicate the |
|
|
manufacturer whose Exclusive message this is. |
|
|
Roland’s manufacturer ID is 41H. |
|
|
ID numbers 7EH and 7FH are extensions of the |
|
|
MIDI standard; Universal Non-realtime Messages |
|
|
(7EH) and Universal Realtime Messages (7FH). |
|
dd,...,ee = data: |
00H–7FH (0–127) |
|
F7H: |
EOX (End Of Exclusive) |
|
The System Exclusive Messages received by this instrument are; messages related to mode settings, Universal Realtime System Exclusive messages, and Universal Non-realtime System Exclusive messages.
77System Exclusive Messages Related to Mode Settings
These messages are used to initialize a device to GM mode.
When creating performance data, you should insert “GM1 System On” at the beginning of a GM1 score, or “GM2 System On” at the beginning of a GM2 score. However, each song should contain only the single mode message that is appropriate for that song. (Do not insert multiple mode setting messages in the same song.)
“GM System On” uses Universal Non-realtime Message format.
66GM1 System On
This is a command message that resets the internal settings of the unit to the General MIDI initial state (General MIDI System-Level 1). After receiving this message, this instrument will automatically be set to the proper condition for correctly playing a GM1 score.
Status |
Data byte |
Status |
F0H |
7EH, 7FH, 09H, 01H |
F7H |
Byte |
Explanation |
|
F0H |
Exclusive status |
|
7EH |
ID number (Universal Non-realtime Message) |
|
7FH |
Device ID (Broadcast) |
|
09H |
Sub ID#1 (General MIDI Message) |
|
01H |
Sub ID#2 (General MIDI 1 On) |
|
F7H |
EOX (End Of Exclusive) |
|
*Once this message is received, Bank Select is no longer received.
*There must be an interval of at least 50 ms between this message and the next.
66GM2 System On
This is a command message that resets the internal settings of the unit to the General MIDI initial state (General MIDI System-Level 2). After receiving this message, this instrument will automatically be set to the proper condition for correctly playing a GM2 score.
Status |
Data byte |
Status |
F0H |
7EH 7FH 09H 03H |
F7H |
Byte |
Explanation |
|
F0H |
Exclusive status |
|
7EH |
ID number (Universal Non-realtime Message) |
|
7FH |
Device ID (Broadcast) |
|
09H |
Sub ID#1 (General MIDI Message) |
|
03H |
Sub ID#2 (General MIDI 2 On) |
|
F7H |
EOX (End Of Exclusive) |
|
*When this message is received, this instrument will be able to receive the messages specified by General MIDI 2, and use the General MIDI 2 soundmap.
*There must be an interval of at least 50 ms between this message and the next.
77Universal Realtime System Exclusive Messages
66Master Volume
Status |
Data byte |
Status |
F0H |
7FH, 7FH, 04H, 01H, llH, mmH |
F7H |
Byte |
Explanation |
|
F0H |
Exclusive status |
|
7FH |
ID number (universal realtime message) |
|
7FH |
Device ID (Broadcast) |
|
04H |
Sub ID#1 (Device Control messages) |
|
01H |
Sub ID#2 (Master Volume) |
|
llH |
Master volume lower byte |
|
mmH |
Master volume upper byte |
|
F7H |
EOX (End Of Exclusive) |
|
llH: ignored (processed as 00H) |
|
|
mmH: 00H–7FH |
0–127 |
|
* The lower byte (llH) of Master Volume will be handled as 00H.
66Master Fine Tuning
Status |
Data byte |
Status |
F0H |
7FH, 7FH, 04H, 03H, llH, mmH |
F7H |
Byte |
Explanation |
|
F0H |
Exclusive status |
|
7FH |
ID number (Universal Realtime Message) |
|
7FH |
Device ID (Broadcast) |
|
04H |
Sub ID#1 (Device Control) |
|
03H |
Sub ID#2 (Master Fine Tuning) |
|
llH |
Master Fine Tuning LSB |
|
mmH |
Master Fine Tuning MSB |
|
F7H |
EOX (End Of Exclusive) |
|
llH, mmH: 00 00H–40 00H–7F 7FH (-100–0–+99.9 [cents])
5
MIDI Implementation
66Master Coarse Tuning
Status |
Data byte |
Status |
F0H |
7FH, 7FH, 04H, 04H, llH, mmH |
F7H |
Byte |
Explanation |
|
F0H |
Exclusive status |
|
7FH |
ID number (Universal Realtime Message) |
|
7FH |
Device ID (Broadcast) |
|
04H |
Sub ID#1 (Device Control) |
|
04H |
Sub ID#2 (Master Coarse Tuning) |
|
llH |
Master Coarse Tuning LSB |
|
mmH |
Master Coarse Tuning MSB |
|
F7H |
EOX (End Of Exclusive) |
|
llH: |
ignored (processed as 00H) |
|
mmH: |
28H–40H–58H (-24–0–+24 [semitones]) |
|
77Global Parameter Control
Parameters of the Global Parameter Control are newly provided for the General MIDI 2.
66Reverb Parameters
Status |
Data byte |
|
Status |
F0H |
7FH, 7FH, 04H, 05H, 01H, 01H, |
F7H |
|
|
01H, 01H, 01H, ppH, vvH |
|
|
Byte |
Explanation |
|
|
F0H |
Exclusive status |
|
|
7FH |
ID number (Universal Realtime Message) |
|
|
7FH |
Device ID (Broadcast) |
|
|
04H |
Sub ID#1 (Device Control) |
|
|
05H |
Sub ID#2 (Global Parameter Control) |
|
|
01H |
Slot path length |
|
|
01H |
Parameter ID width |
|
|
01H |
Value width |
|
|
01H |
Slot path MSB |
|
|
01H |
Slot path LSB (Effect 0101: Reverb) |
|
|
ppH |
Parameter to be controlled. |
|
|
vvH |
Value for the parameter. |
|
|
F7H |
EOX (End Of Exclusive) |
|
|
pp=0 |
Reverb Type |
|
|
|
vv = 00H |
Small Room (Room1) |
|
|
vv = 01H |
Medium Room (Room2) |
|
|
vv = 02H |
Large Room (Room3) |
|
|
vv = 03H |
Medium Hall (Hall1) |
|
|
vv = 04H |
Large Hall (Hall2) |
|
|
vv = 08H |
Plate (Plate) |
|
pp=1 |
Reverb Time |
|
|
|
vv = 00H–7FH |
0–127 |
|
66Chorus Parameters
Status |
Data byte |
|
Status |
F0H |
7FH, 7FH, 04H, 05H, 01H, 01H, |
F7H |
|
|
01H, 01H, 02H, ppH, vvH |
|
|
Byte |
Explanation |
|
|
F0H |
Exclusive status |
|
|
7FH |
ID number (Universal Realtime Message) |
|
|
7FH |
Device ID (Broadcast) |
|
|
04H |
Sub ID#1 (Device Control) |
|
|
05H |
Sub ID#2 (Global Parameter Control) |
|
|
01H |
Slot path length |
|
|
01H |
Parameter ID width |
|
|
01H |
Value width |
|
|
01H |
Slot path MSB |
|
|
02H |
Slot path LSB (Effect 0102: Chorus) |
|
|
ppH |
Parameter to be controlled. |
|
|
vvH |
Value for the parameter. |
|
|
F7H |
EOX (End Of Exclusive) |
|
|
pp=0 |
Chorus Type |
|
|
|
vv = 00H |
Chorus1 |
|
|
vv = 01H |
Chorus2 |
|
|
vv = 02H |
Chorus3 |
|
|
vv = 03H |
Chorus4 |
|
|
vv = 04H |
FB Chorus |
|
|
vv = 05H |
Flanger |
|
pp=1 |
Mod Rate |
|
|
|
vv= 00H–7FH |
0–127 |
|
pp=2 |
Mod Depth |
|
|
|
vv = 00H–7FH |
0–127 |
|
pp=3 |
Feedback |
|
|
|
vv = 00H–7FH |
0–127 |
|
pp=4 |
Send To Reverb |
|
|
|
vv = 00H–7FH |
0–127 |
|
66Channel Pressure |
|
|
|
Status |
Data byte |
|
Status |
F0H |
7FH, 7FH, 09H, 01H, 0nH, ppH, rrH |
F7H |
|
Byte |
Explanation |
|
|
F0H |
Exclusive status |
|
|
7FH |
ID number (Universal Realtime Message) |
|
|
7FH |
Device ID (Broadcast) |
|
|
09H |
Sub ID#1 (Controller Destination Setting) |
|
|
01H |
Sub ID#2 (Channel Pressure) |
|
|
0nH |
MIDI Channel (00H–0FH) |
|
|
ppH |
Controlled parameter |
|
|
rrH |
Controlled range |
|
|
F7H |
EOX (End Of Exclusive) |
|
|
pp=0 |
Pitch Control |
|
|
|
rr = 28H–58H |
-24–+24 [semitones] |
|
pp=1 |
Filter Cutoff Control |
|
|
|
rr = 00H–7FH |
-9600–+9450 [cents] |
|
pp=2 |
Amplitude Control |
|
|
|
rr = 00H–7FH |
0–200 [%] |
|
pp=3 |
LFO Pitch Depth |
|
|
|
rr = 00H–7FH |
0–600 [cents] |
|
pp=4 |
LFO Filter Depth |
|
|
|
rr = 00H–7FH |
0–2400 [cents] |
|
pp=5 |
LFO Amplitude Depth |
|
|
|
rr = 00H–7FH |
0–100 [%] |
|
6