![Roland JD-Xi Midi Implementation Manual Download Page 16](http://html1.mh-extra.com/html/roland/jd-xi/jd-xi_midi-implementation-manual_1480003016.webp)
16
9
Example of an Exclusive Message
and Calculating a Checksum
Roland Exclusive messages (RQ1, 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 (or size) of the transmitted Exclusive message.
7
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
aabbccddH and the data or size is eeffH.
aa + bb + cc + dd + ee + ff = sum
sum / 128 = quotient ... remainder
128 - remainder = checksum
<Example> Setting Effect 1 Reverb Send Level of Program to 100 (DT1)
According to the Parameter Address Map (p. 8), the start address
of Temporary Program is 18 00 00 00H, the offset address of Effect 1 at
Program is 02 00H, and the address of Reverb Send Level is 00 03H.
Therefore the address of Reverb Send Level is;
18 00 00 00H
02 00H
+) 00 03H
18 00 02 03H
64H = 100
So the system exclusive message should be sent is;
F0
41
10
00 00 00 0E 12 18 00 02 03 64 ??
F7
(1) (2) (3) (4)
(5) address
data
checksum (6)
(1) Exclusive Status
(2) ID (Roland) (3) Device ID (17)
(4) Model ID (JD-Xi)
(5) Command ID (DT1)
(6) End of Exclusive
Then calculate the checksum.
18H + 00H + 02H + 03H + 64H = 24 + 0 + 2 + 3 + 100 = 129 (sum)
129 (sum) / 128 = 1 (quotient) ... 1 (remainder)
checksum = 128 - 1 (remainder) = 127 = 7FH
This means that F0 41 10 00 00 00 0E 12 18 00 02 03 64 7F F7 is the
message should be sent.
ASCII Code Table
Program Name, etc., of MIDI data are described the ASCII
code in the table below.
+------+------+------++------+------+------++------+------+------+
| D | H | Char || D | H | Char || D | H | Char |
+------+------+------++------+------+------++------+------+------+
| 32 | 20H | SP || 64 | 40H | @ || 96 | 60H | ` |
| 33 | 21H | ! || 65 | 41H | A || 97 | 61H | a |
| 34 | 22H | “ || 66 | 42H | B || 98 | 62H | b |
| 35 | 23H | # || 67 | 43H | C || 99 | 63H | c |
| 36 | 24H | $ || 68 | 44H | D || 100 | 64H | d |
| 37 | 25H | % || 69 | 45H | E || 101 | 65H | e |
| 38 | 26H | & || 70 | 46H | F || 102 | 66H | f |
| 39 | 27H | ` || 71 | 47H | G || 103 | 67H | g |
| 40 | 28H | ( || 72 | 48H | H || 104 | 68H | h |
| 41 | 29H | ) || 73 | 49H | I || 105 | 69H | i |
| 42 | 2AH | * || 74 | 4AH | J || 106 | 6AH | j |
| 43 | 2BH | + || 75 | 4BH | K || 107 | 6BH | k |
| 44 | 2CH | , || 76 | 4CH | L || 108 | 6CH | l |
| 45 | 2DH | - || 77 | 4DH | M || 109 | 6DH | m |
| 46 | 2EH | . || 78 | 4EH | N || 110 | 6EH | n |
| 47 | 2FH | / || 79 | 4FH | O || 111 | 6FH | o |
| 48 | 30H | 0 || 80 | 50H | P || 112 | 70H | p |
| 49 | 31H | 1 || 81 | 51H | Q || 113 | 71H | q |
| 50 | 32H | 2 || 82 | 52H | R || 114 | 72H | r |
| 51 | 33H | 3 || 83 | 53H | S || 115 | 73H | s |
| 52 | 34H | 4 || 84 | 54H | T || 116 | 74H | t |
| 53 | 35H | 5 || 85 | 55H | U || 117 | 75H | u |
| 54 | 36H | 6 || 86 | 56H | V || 118 | 76H | v |
| 55 | 37H | 7 || 87 | 57H | W || 119 | 77H | w |
| 56 | 38H | 8 || 88 | 58H | X || 120 | 78H | x |
| 57 | 39H | 9 || 89 | 59H | Y || 121 | 79H | y |
| 58 | 3AH | : || 90 | 5AH | Z || 122 | 7AH | z |
| 59 | 3BH | ; || 91 | 5BH | [ || 123 | 7BH | { |
| 60 | 3CH | < || 92 | 5CH | \ || 124 | 7CH | | |
| 61 | 3DH | = || 93 | 5DH | ] || 125 | 7DH | } |
| 62 | 3EH | > || 94 | 5EH | ^ ||------+------+------+
| 63 | 3FH | ? || 95 | 5FH | _ |
+------+------+------++------+------+------+
D: decimal
H: hexadecimal
*
“SP” is space.