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
Version 1.00
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)
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-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.
❍
Effect 1 (Reverb Send Level) (Controller number 91)
Status
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.
❍
RPN MSB/LSB (Controller number 100, 101)
Status
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)
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
* 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.
2nd byte3rd byte
* 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.
1
Page 2
On the DP-900, RPN can be used to modify the following parameters.
RPNData entryExplanation
MSB LSBMSB LSB
00H 01HmmH llHMaster Fine Tuning
7FH 7FH--- ---RPN null
●
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
---------------------------------------------------------1Grand Piano1
2Grand Piano2
3Piano + Strings
4Piano + Choir
5Electric Piano1
6Electric Piano2
7Vibraphone
8Electric Piano+Choir
9Harpsichord
10Organ Flute
11Harpsichord + Strings
12Harpsichord + Choir
13Church Organ
14Rotary Organ
15Organ + Strings
16Organ + Choir
17Strings
18Slow Strings
19Strings + Choir
20Strings + Brass
21*Jazz Scat
22*Choir
23*Choir + Harp
24*Choir + Bell
25Grand Piano1 + Electric Piano1
26Grand Piano1 + Electric Piano2
27Grand Piano1 + Harpsichord
28Grand Piano1 + Organ Flute
29Grand Piano1 + Church Organ
30Grand Piano1 + Rotary Organ
31Grand Piano1 + Strings
32Grand Piano1 + Slow Strings
33*Grand Piano1 + Jazz Scat
34*Grand Piano1 + Choir
35Grand Piano2 + Electric Piano1
36Grand Piano2 + Electric Piano2
37Grand Piano2 + Harpsichord
38Grand Piano2 + Organ Flute
39Grand Piano2 + Church Organ
40Grand Piano2 + Rotary Organ
41Grand Piano2 + Strings
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
42Grand Piano2 + Slow Strings
43*Grand Piano2 + Jazz Scat
44*Grand Piano2 + Choir
45Electric Piano1 + Harpsichord
46Electric Piano1 + Organ Flute
47Electric Piano1 + Church Organ
48Electric Piano1 + Rotary Organ
49Electric Piano1 + Strings
50Electric Piano1 + Slow Strings
51*Electric Piano1 + Jazz Scat
52*Electric Piano1 + Choir
53Electric Piano2 + Harpsichord
54Electric Piano2 + Organ Flute
55Electric Piano2 + Church Organ
56Electric Piano2 + Rotary Organ
57Electric Piano2 + Strings
58Electric Piano2 + Slow Strings
59*Electric Piano2 + Jazz Scat
60*Electric Piano2 + Choir
61Harpsichord + Church Organ
62Harpsichord + Rotary Organ
63Harpsichord + Strings
64Harpsichord + Slow Strings
65*Harpsichord + Jazz Scat
66*Harpsichord + Choir
67Organ Flute + Church Organ
68Organ Flute + Rotary Organ
69Organ Flute + Strings
70Organ Flute + Slow Strings
71*Organ Flute + Jazz Scat
72*Organ Flute + Choir
73Church Organ + Strings
74Church Organ + Slow Strings
75*Church Organ + Jazz Scat
76*Church Organ + Choir
77Rotary Organ + Strings
78Rotary 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
85Grand Piano1/Acoustic Bass
86Grand Piano2/Acoustic Bass
87Electric Piano1/Electric Bass
88Electric Piano2/Electric Bass
89Harpsichord/Strings
90Organ Flute/Organ Bass
91Church Organ/Organ Bass
92Rotary Organ/Lower Organ
93Strings/Pizzicato
94Slow Strings/Pizzicato
95*Jazz Scat/Acoustic Bass(HP-2/3)
96*Choir/Strings
97Grand Piano1/Acoustic Bass & Cymbal
98Grand Piano2/Acoustic Bass & Cymbal
99Electric Piano1/Acoustic Bass
100Electric Piano2/Acoustic Bass
101Harpsichord/Organ Flute
102Organ Flute/Strings
103Church Organ/Strings
104Rotary Organ/Electric Bass
105Strings/Choir
106Slow Strings/Choir
107*Jazz Scat/Acoustic Bass & Cymbal
108*Choir/Church Organ
109Grand Piano1/Strings
110Grand Piano2/Strings
* "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.
* Tones marked with an asterisk ("*") cannot be selected from the panel.
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)
■
Channel Mode Messages
●
Reset All Controllers (Controller number 121)
Status2nd byte3rd byte
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)
* 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.
* 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
* When Active Sensing is received, the unit will begin monitoring the intervals of
all further 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
dd,...,ee = data : 00H-7FH (0-127)
F7H: EOX (End Of Exclusive)
The System Exclusive Messages received by the DP-900 are; Universal Nonrealtime System Exclusive messages, and Data Set (DT1).
Data byte Status
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).
●
OMNI OFF (Controller number 124)
Status2nd byte3rd byte
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
●
OMNI ON (Controller number 125)
3
Page 4
●
Universal Non-realtime System Exclusive
Messages
❍
Identity Request Message
Data byteStatus
Status
F0H7EH, dev, 06H, 01HF7H
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 transmission
DP-900 can transmit and receive the various parameters using System Exclusive
messages.
The exclusive message of DP-900 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.
Data byteStatus
Status
F0H41H, dev, 1AH, 12H, aaH, bbH, ddH, sumF7H
ByteExplanation
F0HExclusive status
41HID number (Roland)
devDevice ID (dev: UNIT#-1)
1AHModel ID (DP-900)
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
ddH Data: the actual data to be transmitted.
sum Checksum
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).
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)
* Either 0 = OFF, or 127 = ON is transmitted by the DP-900.
❍
Soft (Controller number 67)
Status
BnH43HvvH
n=MIDI channel number : 0H-FH (ch.1-ch.16)
vv=Control value : 00H-7FH (0-127)
* Either 0 = OFF, or 127 = ON is transmitted by the DP-900.
❍
Effect 1 (Reverb Send Level) (Controller number 91)
Status
BnH5BHvvH
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
2nd byte3rd byte
4
n=MIDI channel number : 0H - FH (ch.1-ch.16)
vv=Control value : 00H,7FH (0,127) 0=OFF, 127=ON
Page 5
❍
RPN MSB/LSB (Controller number 100, 101)
Status2nd byte3rd byte
BnH65HmmH
BnH64H llH
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**
DP-900 can transmit Master fine tuning (RPN #1) and RPN null. After sending the
master fine tune, immediately the RPN Null shall be sent.
RPNData entryExplanation
MSB LSBMSB LSB
00H 01HmmH llHMaster Fine Tuning
7FH 7FH--- ---RPN null
●
Program Change
Status2nd byte
CnHppH
n = MIDI channel number : 0H-FH (ch.1-ch.16)
pp = Program number : 00H...75H (prog. 1...118)
* 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 DP-900.
The exclusive message of DP-900 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.
ByteExplanation
F0HExclusive status
7EHID number (universal non-realtime message)
devDevice ID (devÅFUNIT#-1)
06HSub ID#1 (General Information)
02HSub ID#2 (Identity Reply)
41HID number (Roland)
1AH,00HDevice family code
00H,06HDevice family number code
ddH,01H,00H,00H Software revision level dd:02(DP-900)
F7HEOX (End of Exclusive)
●
Data transmission
❍
Data set 1 DT1
Data byteStatus
Status
F0H41H, dev, 1AH, 12H, aaH, bbH, ddH, sum F7H
ByteExplanation
F0HExclusive status
41HID number (Roland)
devDevice ID (dev: UNIT#-1)
1AHModel ID (DP-900)
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)
All the numbers of address, size, Data, and Default Value are indicated in 7-bit
Hexadecimal-form.
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.
<Example 1>
What is the decimal expression of 5AH ?
From the preceding table, 5AH = 90
<Example 2>
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
14 and 08H = 8, this is a Program Change message with MIDI CH = 15, program
number 9 (Harpsichord in DP-900).
<Example 3>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.
●
Example of an Exclusive message and calculating
a Checksum
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 :
(1)Exclusive Status (2)ID (Roland) (3)Device ID (UNIT#-1)
(4)Model ID (DP-900) (5)Command ID (DT1) (6)End of Exclusive
* UNIT NUMBER is always the same as the current basic channel. In this
example, the basic channel is 1.
●
Examples of actual MIDI messages
<Example 1>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.
<Example 2>CE 08
CnH is the Program Change status, and n is the MIDI channel number. Since EH =
Therefore, the message to send is : F0 41 00 1A 12 01 03 30 4C F7
Page 7
●
About tuning
DP-900 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 DP-900 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.