Detailed instructions for use are in the User's Guide.
[. . . ] mm, ll: ignored
7FH 7FH
--- ---
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 BnH 2nd byte 0BH 3rd byte vvH
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 BnH 2nd byte 40H 3rd byte vvH
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.
Sostenuto
Status BnH
(Controller number 66)
2nd byte 42H 3rd byte vvH
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
Status BnH
(Controller number 67)
2nd byte 43H 3rd byte vvH
1
DIGITAL PIANO Date: Oct 8, 2002 Model:C-20 MIDI IMPLEMENTATION Version
Program Change
Status CnH 2nd byte ppH
Channel Mode Messages
Reset All Controllers (Controller number 121)
Status BnH 2nd byte 79H 3rd byte 00H
n = MIDI channel number : 0H-FH (ch. 1-ch. 16) pp = Program number : 00H. . 40H (prog. 1. . prog. 65) Received program change message are assigned as follows. tone ---------------------------------1 Grand Piano 2 Bright Piano 3 Stage Rhodes 4 E. Piano 5 Harpsichord 6 Organ Flute 7 Pipe Organ 8 Rotaly Organ 9 Strings 10 Choir 11 --12 Grand Piano + Stage Rhodes 13 Grand Piano + E. Piano 14 Grand Piano + Harpsichord 15 Grand Piano + Organ Flute 16 Grand Piano + Pipe Organ 17 Grand Piano + Rotaly Organ 18 Grand Piano + Strings 19 Grand Piano + Choir 20 Bright Piano + Stage Rhodes 21 Bright Piano + E. Piano 22 Bright Piano + Harpsichord 23 Bright Piano + Organ Flute 24 Bright Piano + Pipe Organ 25 Bright Piano + Rotaly Organ 26 Bright Piano + Strings 27 Bright Piano + Choir 28 --29 Stage Rhodes + Harpsichord 30 Stage Rhodes + Organ Flute 31 Stage Rhodes + Pipe Organ 32 Stage Rhodes + Rotaly Organ 33 Stage Rhodes + Strings 34 Stage Rhodes + Choir 35 E. Piano + Harpsichord 36 E. Piano + Organ Flute 37 E. Piano + Pipe Organ 38 E. Piano + Rotaly Organ 39 E. Piano + Strings 40 E. Piano + Choir 41 --42 Harpsichord + Pipe Organ 43 Harpsichord + Rotaly Organ 44 Harpsichord + Strings 45 Harpsichord + Choir 46 Organ Flute + Pipe Organ 47 Organ Flute + Rotaly Organ 48 Organ Flute + Strings 49 Organ Flute + Choir 50 --51 Pipe Organ + Strings 52 Pipe Organ + Choir 53 Rotaly Organ + Strings 54 Rotaly Organ + Choir 55 --56 Acoustic Bass | Grand Piano 57 Strings | Grand Piano 58 Vibraphone 59 Electric Bass | Stage Rhodes 60 Clavi 61 Strings | Harpsichord 62 Strings | Pipe Organ 63 Rotary Organ | Jazz Organ 64 Strings + Brass 65 Strings | 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. [. . . ] 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.
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 Expression Hold 1 Sostenuto Soft Reset value 127 (max) 0 (off) 0(off) 0(off)
Local Control (Controller number 122)
Status BnH 2nd byte 7AH 3rd byte vvH
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 BnH 2nd byte 7BH 3rd byte 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.
OMNI OFF (Controller number 124)
Status BnH 2nd byte 7CH 3rd byte 00H
n = MIDI channel number : 0H-FH (ch. 1-ch. 16) * The instrument will behave in the same way as it does when an "All Notes Off" message is received. The mode will be OMNI OFF, POLY(Mode 3).
OMNI ON (Controller number 125)
Status BnH 2nd byte 7DH 3rd byte 00H
n = MIDI channel number : 0H-FH (ch. 1-ch. 16) * The instrument will behave in the same way as it does when an "All Notes Off" message is received. The mode will be OMNI ON, POLY(Mode 1).
MONO (Controller number 126)
Status BnH 2nd byte 7EH 3rd byte mmH
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.
POLY (Controller number 127)
Status BnH 2nd byte 7FH 3rd byte 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.
2
DIGITAL PIANO Date: Oct 8, 2002 Model:C-20 MIDI IMPLEMENTATION Version
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.
2. Transmit Data
Channel Voice Messages
Note off
Status 8nH 2nd byte kkH 3rd byte 40H
n = MIDI channel number : 0H-FH (ch. 1-ch. 16) kk = note number : 0FH-71H (15-113)
System Exclusive Message
Status F0H F0H ii = ID number : : Data byte iiH, ddH, . . . . . . , eeH Status F7H
Note on
Status 9nH 2nd byte kkH 3rd byte vvH
dd, . . . , ee = data F7H
: :
System Exclusive Message status an ID number (manufacturer ID) to indicate the manufacturer whose Exclusive message this is. ID numbers 7EH and 7FH are extensions of the MIDI standard; Universal Non-realtime Messages (7EH) and Universal Realtime Messages (7FH). 00H-7FH (0-127) EOX (End Of Exclusive)
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 BnH BnH 2nd byte 06H 26H 3rd byte mmH llH
The System Exclusive Messages received by the C-20 are; Universal Non-realtime System Exclusive messages, and Data Set (DT1).
Universal Non-realtime System Exclusive Messages
Identity Request Message
Status F0H Byte FOH 7EH dev 06H 01H F7H * * Data byte 7EH, dev, 06H, 01H Status F7H 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 BnH 2nd byte 40H 3rd byte vvH
Explanation Exclusive status ID number (universal non-realtime message) Device ID (dev: UNIT#-1) Sub ID#1 (General Information) Sub ID#2 (Identity Request) EOX (End Of Exclusive)
n = MIDI channel number : 0H-FH (ch. 1-ch. 16) vv = Control value : 00H, 7FH (0, 127) 0 = OFF, 127 = ON
Soft
Status BnH
(Controller number 67)
2nd byte 43H 3rd byte vvH
The "dev" is own device number (UNIT#-1) or 7FH (Broadcast). Frequently used tuning values are given in the following table for your reference. +----------------+----------------+----------------------------+ |Hz at A4| cent | RPN #1 | +----------------+----------------+----------------------------+ | 445. 0 | +19. 56 | 4C 43 (+1603)| | 444. 0 | +15. 67 | 4A 03 (+1283)| | 443. 0 | +11. 76 | 47 44 (+ 964)| | 442. 0 | + 7. 85 | 45 03 (+ 643)| | 441. 0 | + 3. 93 | 42 42 (+ 322)| | 440. 0 | 0 | 40 00 ( 0 )| | 439. 0 | -- 3. 94 | 3D 3D (-- 323)| | 438. 0 | -- 7. 89 | 3A 7A (-- 646)| +----------------+----------------+----------------------------+ Set the tuning of C-20 to A4 = 442. 0 Hz Send RPN#1 to the MIDI Tx/Rx channel. If the MIDI Tx/Rx channel is set to ch. 1, below is the message we transmit. B0 64 00 MIDI ch. 1, lower byte of RPN parameter number: 00H (B0) 65 01 (MIDI ch. 1) upper byte of RPN parameter number: 01H (B0) 06 45 (MIDI ch. 1) upper byte of parameter value: 45H (B0) 26 03 (MIDI ch. 1) lower byte of parameter value: 03H (B0) 64 7F (MIDI ch. 1) lower byte of RPN parameter number: 7FH (B0) 65 7F (MIDI ch. 1) upper byte of RPN parameter number: 7FH
CE 08
CnH is the Program Change status, and n is the MIDI channel number. Since EH = 14 and 08H = 08, this is a Program Change message with MIDI CH = 15, program number 09 (Strings in C-20).
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. B3 64 00 MIDI ch. 4, lower byte of RPN parameter number: 00H (B3) 65 01 (MIDI ch. 4) upper byte of RPN parameter number: 01H (B3) 06 40 (MIDI ch. 4) upper byte of parameter value: 40H (B3) 26 00 (MIDI ch. 4) lower byte of parameter value: 00H (B3) 64 7F (MIDI ch. 4) lower byte of RPN parameter number: 7FH (B3) 65 7F (MIDI ch. 4) upper byte of RPN parameter number: 7FH 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. [. . . ] B3 64 00 MIDI ch. 4, lower byte of RPN parameter number: 00H (B3) 65 01 (MIDI ch. 4) upper byte of RPN parameter number: 01H (B3) 06 40 (MIDI ch. 4) upper byte of parameter value: 40H (B3) 26 00 (MIDI ch. 4) lower byte of parameter value: 00H (B3) 64 7F (MIDI ch. 4) lower byte of RPN parameter number: 7FH (B3) 65 7F (MIDI ch. 4) upper byte of RPN parameter number: 7FH 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. [. . . ]