beautypg.com

Supplementary material, Decimal and hexadecimal table, Calculation of the checksum of exclusive messages – Roland SPD-S User Manual

Page 123

background image

123

MIDI Implementation

Appendices

3. Supplementary material

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.

*

An “H” is appended to the end of numbers in hexadecimal notation.

+——————————————————————————————————————————————————————————+
| D | H || D | H || D | H || D | H |
|——————+——————++——————+——————++——————+——————++——————+——————|
| 0 | 00H || 32 | 20H || 64 | 40H || 96 | 60H |
| 1 | 01H || 33 | 21H || 65 | 41H || 97 | 61H |
| 2 | 02H || 34 | 22H || 66 | 42H || 98 | 62H |
| 3 | 03H || 35 | 23H || 67 | 43H || 99 | 63H |
| 4 | 04H || 36 | 24H || 68 | 44H || 100 | 64H |
| 5 | 05H || 37 | 25H || 69 | 45H || 101 | 65H |
| 6 | 06H || 38 | 26H || 70 | 46H || 102 | 66H |
| 7 | 07H || 39 | 27H || 71 | 47H || 103 | 67H |
| 8 | 08H || 40 | 28H || 72 | 48H || 104 | 68H |
| 9 | 09H || 41 | 29H || 73 | 49H || 105 | 69H |
| 10 | 0AH || 42 | 2AH || 74 | 4AH || 106 | 6AH |
| 11 | 0BH || 43 | 2BH || 75 | 4BH || 107 | 6BH |
| 12 | 0CH || 44 | 2CH || 76 | 4CH || 108 | 6CH |
| 13 | 0DH || 45 | 2DH || 77 | 4DH || 109 | 6DH |
| 14 | 0EH || 46 | 2EH || 78 | 4EH || 110 | 6EH |
| 15 | 0FH || 47 | 2FH || 79 | 4FH || 111 | 6FH |
| 16 | 10H || 48 | 30H || 80 | 50H || 112 | 70H |
| 17 | 11H || 49 | 31H || 81 | 51H || 113 | 71H |
| 18 | 12H || 50 | 32H || 82 | 52H || 114 | 72H |
| 19 | 13H || 51 | 33H || 83 | 53H || 115 | 73H |
| 20 | 14H || 52 | 34H || 84 | 54H || 116 | 74H |
| 21 | 15H || 53 | 35H || 85 | 55H || 117 | 75H |
| 22 | 16H || 54 | 36H || 86 | 56H || 118 | 76H |
| 23 | 17H || 55 | 37H || 87 | 57H || 119 | 77H |
| 24 | 18H || 56 | 38H || 88 | 58H || 120 | 78H |
| 25 | 19H || 57 | 39H || 89 | 59H || 121 | 79H |
| 26 | 1AH || 58 | 3AH || 90 | 5AH || 122 | 7AH |
| 27 | 1BH || 59 | 3BH || 91 | 5BH || 123 | 7BH |
| 28 | 1CH || 60 | 3CH || 92 | 5CH || 124 | 7CH |
| 29 | 1DH || 61 | 3DH || 93 | 5DH || 125 | 7DH |
| 30 | 1EH || 62 | 3EH || 94 | 5EH || 126 | 7EH |
| 31 | 1FH || 63 | 3FH || 95 | 5FH || 127 | 7FH |
+——————————————————————————————————————————————————————————+

D: decimal
H: hexadecimal

*

Decimal values such as MIDI channel, bank select, 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.

What is the decimal expression of 5AH?

From the preceding table, 5AH = 90

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

Calculation of the Checksum of Exclusive

Messages

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.

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 cc ddH and the data or size is ee ff gg hhH.

aa + bb + cc + dd + ee + ff + gg + hh = sum
sum / 128 = quotient ... remainder
128 - remainder = checksum
(However, the checksum will be 0 if the remainder is 0.)

SPDS_e.book 123 ページ 2004年4月19日 月曜日 午前9時58分