Status
8nHkkHvvH
9nHkkH00H
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)
* The velocity values of Note Off messages are ignored.
Note on
Status
9nHkkHvvH
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)
* Note numbers outside the range of 15-113 are transposed to the nearest octave within
this range.
* Transpose function does not affect the recognized note numbers.
Control Change
* The value specified by a Control Change message will not be reset even by a Program
Change, etc.
Data Entry (Controller number 6, 38)
Status
BnH06HmmH
BnH26HllH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
mm, ll = the value of the parameter specified by RPN
Volume (Controller number 7)
Status
BnH07HvvH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
vv = Volume : 00H-7FH (0-127), Initial Value = 7FH (127)
* Received volume messages affect received note event levels, and cannot affect internal
keyboard notes.
Expression (Controller number 11)
Status
BnH0BHvvH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
vv = Expression : 00H-7FH (0-127), Initial Value = 7FH (127)
* These message can affect only MIDI notes.
Hold 1 (Controller number 64)
Status
BnH40HvvH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
vv = Control value : 00H-7FH (0-127)
* These message can affect only MIDI notes.
Sostenuto (Controller number 66)
Status
BnH42HvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127) 0-63 = OFF 64-127 = ON
* These message can affect only MIDI notes.
Soft (Controller number 67)
Status
BnH43HvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127)
* These message can affect only MIDI notes.
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
Effect 1 (Reverb Send Level) (Controller number 91)
Status2nd byte3rd byte
BnH5BHvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127) 0-63 = OFF 64-127 = ON
* Reverb message shall be recieved as a basic channel.
* Received reverb messages through basic channel affect all parts and internal keyboard
notes.
Effect 3 (Chorus Send Level) (Controller number 93)
Status2nd byte3rd byte
BnH5DHvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127) 0-63 = OFF 64-127 = ON
* Received chorus messages through channel 1-16 affect each part individually.
* Received chorus messages through basic channel affect part on the corresponding
channel and internal keyboard notes.
RPN MSB/LSB (Controller number 100, 101)
Status2nd byte3rd byte
BnH65HmmH
BnH64HllH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
mm = upper byte of parameter number specified by RPN (MSB)
ll = lower byte of parameter number specified by RPN (LSB)
* 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.
On the HP-2/3/7, RPN can be used to modify the following parameters.
RPNData entry
MSB LSBMSB LSBExplanation
00H 01HmmH llHMaster Fine Tuning
Set condition where RPN and NRPN are unspecified. 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
Program Change
Status2nd byte
CnHppH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
pp = Program number : 00H..77H (prog.1..prog.120)
Received program change message are assigned as follows.
prog. tone
--------------------------------- 1 Grand Piano1
2 Grand Piano2
3 Piano + Strings
4 Piano + Choir
5 Electric Piano1
6 Electric Piano2
7 Vibraphone
8 Electric Piano+Choir
9 Harpsichord
10 Organ Flute
11 Harpsichord + Strings
1
Page 2
■
●
●
●
●
Digital Piano Date:Dec. 20, 2001 Model:HP-2/3/7 MIDI Implementation
12 Harpsichord + Choir
13 Church Organ
14 Rotary Organ
15 Organ + Strings
16 Organ + Choir
17 Strings
18 Slow Strings
19 Strings + Choir
20 Strings + Brass
21 * Jazz Scat
22 * Choir
23 * Choir + Harp
24 * Choir + Bell
25 Grand Piano1 + Electric Piano1
26 Grand Piano1 + Electric Piano2
27 Grand Piano1 + Harpsichord
28 Grand Piano1 + Organ Flute
29 Grand Piano1 + Church Organ
30 Grand Piano1 + Rotary Organ
31 Grand Piano1 + Strings
32 Grand Piano1 + Slow Strings
33 * Grand Piano1 + Jazz Scat
34 * Grand Piano1 + Choir
35 Grand Piano2 + Electric Piano1
36 Grand Piano2 + Electric Piano2
37 Grand Piano2 + Harpsichord
38 Grand Piano2 + Organ Flute
39 Grand Piano2 + Church Organ
40 Grand Piano2 + Rotary Organ
41 Grand Piano2 + Strings
42 Grand Piano2 + Slow Strings
43 * Grand Piano2 + Jazz Scat
44 * Grand Piano2 + Choir
45 Electric Piano1 + Harpsichord
46 Electric Piano1 + Organ Flute
47 Electric Piano1 + Church Organ
48 Electric Piano1 + Rotary Organ
49 Electric Piano1 + Strings
50 Electric Piano1 + Slow Strings
51 * Electric Piano1 + Jazz Scat
52 * Electric Piano1 + Choir
53 Electric Piano2 + Harpsichord
54 Electric Piano2 + Organ Flute
55 Electric Piano2 + Church Organ
56 Electric Piano2 + Rotary Organ
57 Electric Piano2 + Strings
58 Electric Piano2 + Slow Strings
59 * Electric Piano2 + Jazz Scat
60 * Electric Piano2 + Choir
61 Harpsichord + Church Organ
62 Harpsichord + Rotary Organ
63 Harpsichord + Strings
64 Harpsichord + Slow Strings
65 * Harpsichord + Jazz Scat
66 * Harpsichord + Choir
67 Organ Flute + Church Organ
68 Organ Flute + Rotary Organ
69 Organ Flute + Strings
70 Organ Flute + Slow Strings
71 * Organ Flute + Jazz Scat
72 * Organ Flute + Choir
73 Church Organ + Strings
74 Church Organ + Slow Strings
75 * Church Organ + Jazz Scat
76 * Church Organ + Choir
77 Rotary Organ + Strings
78 Rotary Organ + Slow Strings
79 * Rotary Organ + Jazz Scat
80 * Rotary Organ + Choir
81 * Strings + Jazz Scat
82 * Strings + Choir
83 * Slow Strings + Jazz Scat
84 * Slow Strings + Choir
85 Grand Piano1/Acoustic Bass
86 Grand Piano2/Acoustic Bass
87 Electric Piano1/Electric Bass
88 Electric Piano2/Electric Bass
89 Harpsichord/Strings
90 Organ Flute/Organ Bass
91 Church Organ/Organ Bass
92 Rotary Organ/Lower Organ
93 Strings/Pizzicato
94 Slow Strings/Pizzicato
95 * Jazz Scat/Voice Bass (HP-7)
Jazz Scat/Acoustic Bass (HP-2/3)
96 * Choir/Strings
97 Grand Piano1/Acoustic Bass & Cymbal
98 Grand Piano2/Acoustic Bass & Cymbal
99 Electric Piano1/Acoustic Bass
100 Electric Piano2/Acoustic Bass
101 Harpsichord/Organ Flute
102 Organ Flute/Strings
103 Church Organ/Strings
104 Rotary Organ/Electric Bass
105 Strings/Choir
106 Slow Strings/Choir
107 * Jazz Scat/Acoustic Bass & Cymbal
108 * Choir/Church Organ
109 Grand Piano1/Strings
110 Grand Piano2/Strings
111 Electric Piano1/Strings
112 Electric Piano2/Strings
113 Harpsichord/Acoustic Bass
114 Organ Flute/Choir
115 Church Organ/Choir
116 Jazz Organ/Rotary Organ
117 Oboe/Strings
118 Flute/Slow Strings
119 * Jazz Scat/Choir
120 * Choir/Organ Flute
* "A+B" means tones for dual, and "A|B" means tones for split.
* "---" and any program number other than those listed above are ignored.
* After a Program Change message is received, the sound will change beginning with the
next Note-on. Voices already sounding when the Program Change message was
received will not be affected.
* Received program change messages through channel 1-16 affect each part individually.
* Received program change messages through basic channel affect part on the
corresponding channel and internal keyboard notes.
* “*” is only for HP-7.
Channel Mode Messages
Reset All Controllers (Controller number 121)
Status
BnH79H00H
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.
ControllerReset value
Expression127 (max)
Hold 10 (off)
Sostenuto0 (off)
Soft0 (off)
Local Control (Controller number 122)
Status
BnH7AHvvH
n=MIDI channel number : 0H - FH (ch.1 - ch.16)
vv=Value : 00H, 7FH (0, 127) 0=OFF 127=ON
All Notes Off (Controller number 123)
Status
BnH7BH00H
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.
OMNI OFF (Controller number 124)
Status
BnH7CH00H
n = MIDI channel number : 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2
Page 3
●
●
●
■
●
■
●
❍
●
❍
■
●
❍
●
❍
❍
❍
Digital Piano Date:Dec. 20, 2001 Model:HP-2/3/7 MIDI Implementation
OMNI ON (Controller number 125)
Status2nd byte3rd byte
BnH7DH00H
n = MIDI channel number : 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
MONO (Controller number 126)
Status2nd byte3rd byte
BnH7EHmmH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
mm = mono number : 00H-10H (0-16)
* The same processing will be carried out as when All Notes Off is received. *1
POLY (Controller number 127)
Status2nd byte3rd byte
BnH7FH00H
n = MIDI channel number : 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
Note:
*1 The Mode doesn't change (OMNI OFF, POLY remains).
System Realtime Message
Active Sensing
Status
FEH
Data transmission
HP-2/3/7 can transmit and receive the various parameters using System Exclusive
messages.
The exclusive message of HP-2/3/7 data has a model ID of 1AH, and device ID is defined
by MIDI UNIT NUMBER(UNIT#).
UNIT NUMBER(UNIT#) is always the same as the current basic channel.
Data set 1 DT1
This is the message that actually performs data transmission, and is used when you wish
to transmit the data.
ByteExplanation
F0HExclusive status
41HID number (Roland)
devDevice ID (dev: UNIT#-1)
1AHModel ID (HP-2/3/7)
12HCommand ID (DT1)
aaHAddress MSB: upper byte of the starting address of the transmitted data
bbHAddress LSB: lower byte of the starting address of the transmitted data
ddHData: the actual data to be transmitted.
sumChecksum
F7HEOX (End Of Exclusive)
* If "Data Set 1" is transmitted successively, there must be an interval of at least 40 msec
between packets.
* Regarding the address please refer to section 3 (Parameter Address Map).
* Regarding the checksum please refer to section 4 (Supplementary material).
* When Active Sensing is received, the unit will begin monitoring the intervals of all
urther messages. While monitoring, if the interval between messages exceeds 360 msec,
the same processing will be carried out as when All Notes Off and Reset All Controllers
are received, and message interval monitoring will be halted.
System Exclusive Message
Status
F0HiiH, ddH, ......,eeH F7H
F0H : System Exclusive Message status
ii = ID number : an ID number (manufacturer ID) to indicate the manufacturer whose
dd,...,ee = data : 00H-7FH (0-127)
F7H : EOX (End Of Exclusive)
The System Exclusive Messages received by the HP-2/3/7 are; Universal Non-realtime
System Exclusive messages, and Data Set (DT1).
Universal Non-realtime System Exclusive Messages
Identity Request Message
Status
F0H7EH, dev, 06H, 01H F7H
ByteExplanation
FOHExclusive status
7EHID number (universal non-realtime message)
devDevice ID (dev: UNIT#-1)
06HSub ID#1 (General Information)
01HSub ID#2 (Identity Request)
F7HEOX (End Of Exclusive)
* The "dev" is own device number (UNIT#-1) or 7FH (Broadcast).
* UNIT# is always the same as the current basic channel.
Data byteStatus
Exclusive message this is. Roland's manufacturer ID is 41H. ID numbers
7EH and 7FH are extensions of the MIDI standard; Universal Nonrealtime Messages (7EH) and Universal Realtime Messages (7FH).
Data byteStatus
2. Transmit Data
Channel Voice Messages
Note off
Status
8nHkkH40H
n = MIDI channel number : 0H-FH (ch.1-ch.16)
kk = note number : 0FH-71H (15-113)
Note on
Status
9nHkkHvvH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
kk = note number : 0FH-71H (15-113)
vv = note on velocity : 01H-7FH (1-127)
* Note number's range can be changed with Key Transpose.
Control Change
Data Entry (Controller number 6, 38)
Status
BnH06HmmH
BnH26HllH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
mm, ll = the value of the parameter specified by RPN
Hold 1 (Controller number 64)
Status
BnH40HvvH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
vv = Control value : 00H-7FH (0-127)
* The HP-7 transmits continuous values representing the position of the pedal.
Either 0 = OFF, or 127 = ON is transmitted by the HP-2/3.
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
Sostenuto (Controller number 66)
Status
BnH42HvvH
n=MIDI channel number : 0H - FH (ch.1-ch.16)
vv=Control value : 00H,7FH (0,127) 0=OFF, 127=ON
* ON or OFF is transmitted.
2nd byte3rd byte
3
Page 4
❍
❍
❍
❍
●
■
●
■
●
❍
●
❍
Digital Piano Date:Dec. 20, 2001 Model:HP-2/3/7 MIDI Implementation
Soft (Controller number 67)
Status2nd byte3rd byte
BnH43HvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127)
* The HP-7 transmits continuous values representing the position of the pedal.
Either 0 = OFF, or 127 = ON is transmitted by the HP-2/3.
Effect 1 (Reverb Send Level) (Controller number 91)
Status2nd byte3rd byte
BnH5BHvvH
n=MIDI channel number : 0H - FH (ch.1-ch.16)
vv=Control value : 00H,7FH (0,127) 0=OFF, 127=ON
Effect 3 (Chorus Send Level) (Controller number 93)
Status2nd byte3rd byte
BnH5DHvvH
n=MIDI channel number : 0H - FH (ch.1-ch.16)
vv=Control value : 00H,7FH (0,127) 0=OFF, 127=ON
RPN MSB/LSB (Controller number 100, 101)
Status2nd byte3rd byte
BnH65HmmH
BnH64HllH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
mm = upper byte of parameter number specified by RPN
ll = lower byte of parameter number specified by RPN
**RPN**
HP-2/3/7 can transmit Master fine tuning (RPN #1) and RPN null. After sending the master
fine tune, immediately the RPN Null shall be sent.
RPNData entry
MSB LSBMSB LSBExplanation
00H 01HmmH llHMaster Fine Tuning
ByteExplanation
F0HExclusive status
41HID number (Roland)
devDevice ID (dev: UNIT#-1)
1AHModel ID (HP-2/3/7)
12HCommand ID (DT1)
aaHAddress MSB: upper byte of the starting address of the data to be sent
bbHAddress LSB: lower byte of the starting address of the data to be sent.
ddHData: the actual data to be sent.
sumChecksum
F7HEOX (End Of Exclusive)
* Regarding the address please refer to section 3 (Parameter Address Map).
* Regarding the checksum please refer to section 4 (Supplementary material).
3. Parameter Address Map (Model ID =
1AH)
* For the correspondence between Program Change numbers and Tones, please refer to
"Program Change" in "1.Receive Data."
System Realtime Message
Active sensing
Status
FEH
* This will be transmitted constantly at intervals of approximately 210 msec.
System exclusive messages
"Identity Reply" and "Data Set 1 (DT1)" are the only System Exclusive messages transmitted
by HP-2/3/7.
The exclusive message of HP-2/3/7 data has a model ID of 1AH, and device ID is defined
by MIDI UNIT NUMBER(UNIT#).
UNIT NUMBER is always the same as the current basic channel.
All the numbers of address, size, Data, and Default Value are indicated in 7-bit
Hexadecimal-form.
Upon pressing the [Transpose] button down, press the[Piano 2] button down. The display
shall show the temperament type value. The following exclusive messages as shown below
can be transmitted by pressing the [+/-] button down.
HP-2/3/7 has 16 parts: each channel is 1-16. These channel numbers are fixed. Each part
channel can receive program changes individually.
Part
11
22
33
44
::
::
1616
Basic Channel
The basic channel is determined by the setting of the MIDI transmit channel.
MIDI Transmit Channel
Decimal and Hexadecimal table
In MIDI documentation, data values and addresses/sizes of exclusive messages etc. are
expressed as hexadecimal values for each 7 bits.
The following table shows how these correspond to decimal numbers.
* Decimal values such as MIDI channel and program change are listed as one (1) greater
than the values given in the above table.
*A 7-bit byte can express data in the range of 128 steps. For data where greater precision
is required, we must use two or more bytes. For example, two hexadecimal numbers aa
bbH expressing two 7-bit bytes would indicate a value of aa x 128 + bb.
5
Page 6
■
●
●
Digital Piano Date:Dec. 20, 2001 Model:HP-2/3/7 MIDI Implementation
What is the decimal expression of 5AH ?
From the preceding table, 5AH = 90
Therefore, the message to send is : F0 41 00 1A 12 01 03 30 4C F7
What is the decimal expression of the value 12 34H given as hexadecimal for each 7 bits?
From the preceding table, since 12H = 18 and 34H = 52
18 x 128 + 52 = 2356
Examples of actual MIDI messages
92 3E 5F
9n is the Note-on status, and n is the MIDI channel number. Since 2H = 2, 3EH = 62, and
5FH = 95, this is a Note-on message with MIDI CH = 3, note number 62 (note name is D4),
and velocity 95.
CE 10
CnH is the Program Change status, and n is the MIDI channel number. Since EH = 14 and
10H = 16, this is a Program Change message with MIDI CH = 15, program number 17
(Strings in HP-2/3/7).
B3 64 00 65 01 06 40 26 00 64 7F 65 7F
BnH is the Control Change status, and n is the MIDI channel number. For Control
Changes, the 2nd byte is the control number, and the 3rd byte is the value. In a case
in which two or more messages consecutive messages have the same status, MIDI has a
provision called "running status" which allows the status byte of the second and
following messages to be omitted. Thus, the above messages have the following meaning.
In other words, the above messages specify a value of 40 00H for RPN parameter number
00 01H (Master Fine Tuning) on MIDI channel 4, and then set the RPN parameter number to
7F 7FH (RPN null).
Once the parameter number has been specified for RPN, all Data Entry messages
transmitted on that same channel will be valid, so after the desired value has been
transmitted, it is a good idea to set the parameter number to 7F 7FH to prevent
accidents. This is the reason for the (B3) 64 7F (B3) 65 7F at the end.
About tuning
HP-2/3/7 is tuned by sending RPN #1 (Master Fine Tuning) to the basic channel.
RPN #1 allows tuning to be specified in steps of approximately 0.012 cents (to be
precise, 100/8192 cent). One cent is 1/100th of a semi-tone.
Frequently used tuning values are given in the following table for your reference.
Values are in hexadecimal (decimal in parentheses).
<Example> Set the tuning of HP-2/3/7 to A4 = 442.0 Hz
Send RPN#1 to basic channel. From the above table, the value is 45 03H.
If the basic channel is set to ch.1, below is the message we transmit.
Roland Exclusive messages (DT1) are transmitted with a checksum at the end (before F7)
to make sure that the message was correctly received. The value of the checksum is
determined by the address and data of the transmitted exclusive message.
How to calculate the checksum
(hexadecimal numbers are indicated by 'H')
The checksum is a value derived by adding the address, size and checksum itself and
inverting the lower 7 bits. Here's an example of how the checksum is calculated. We
will assume that in the exclusive message we are transmitting, the address is aa bb and
the data or size is ccH.
aa + bb + cc = sum
sum / 128 = quotient ... remainder
128 - remainder = checksum
Set "Reverb Type" to "Type 4"
According to the Parameter Address Map, the Address of Reverb Type is 01 03H, and
the Value corresponding to Type 4 is 30H.
So, the message should be :