Owner's manual

57
MIDI Implementation
4. Appendices
Decimal and Hexadecimal table
(Hexadecimal number is shown with H.)
In MIDI documentation, data values and addresses/sizes of system exclusive messages etc.
are expressed as hexadecimal values for each 7 bits. The following table shows how these
correspond to decimal numbers.
+——————+——————++——————+——————++——————+——————++——————+——————+
| dec | hex || dec | hex || dec | hex || dec | hex |
+——————+——————++——————+——————++——————+——————++——————+——————+
| 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 |
+——————+——————++——————+——————++——————+——————++——————+——————+
* 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.
* In the case of values which have a +/- sign, 00H = -64, 40H = +/-0, and 7FH = +63, so
that the decimal expression would be 64 less than the value given in the above chart. In
the case of two types, 00 00H = -8192, 40 00H = +/-0, and 7F 7FH = +8191.
* Data marked “nibbled” is expressed in hexadecimal in 4-bit units. A value expressed as a
2-byte nibble 0a 0bH has the value of a x 16 + b.
<Ex.1> What is 5AH in decimal system?
5AH = 90 according to the above table.
<Ex.2>What in decimal system is 12034H in hexadecimal of every 7 bit?
12H = 18, 34H = 52 according to the above table. So 18 x 128 + 52 = 2356.
<Ex.3> What in decimal system is 0A 03 09 0D in nibble system?
0AH = 10, 03H = 3, 09H = 9, 0DH = 13 according to the table.
So ( (10 x 16 + 3) x 16 + 9) x 16 + 13 = 41885.
<Ex. 4> What in nibble system is 1258 in decimal system?
____
16)1258
16) 78 ... 10
16) 4 ... 14
0 ... 4
0 = 00H, 4 = 04H, 14 = 0EH, 10 = 0AH According to the table.
So it is 00 04 0E 0AH.
Example of system exclusive message and Checksum
calculation
On Roland system exclusive message (DT1), checksum is added at the end of transmitted
data (in front of F7) to check the message is received correctly. Value of checksum is defined
by address and data (or size) of the system exclusive message to be transmitted.
How to calculate checksum
(Hexadecimal number is shown with H.)
Checksum is a value which lower 7 bit of the sum of address, size and checksum itself turns
to be 0. If the address of the system exclusive message to be transmitted is aa bb ccH and
data or size is dd ee ffH,
aa + bb + cc + dd + ee + ff = sum
sum / 128 = quotient and odd
When odd is 0, 0 = checksum
When odd is other than 0, 128 - odd = checksum
MIDI Machine Control (MMC) Command,
Information Field / Response Reference
Commands Recognized
Command Action
01H STOP STOP
02H PLAY PLAY
03H DEFERRED PLAY PLAY
04H FAST FORWARD FF
05H REWIND REW
06H RECORD STROBE REC / PUNCH IN
07H RECORD EXIT PUNCH OUT
0DH MMC RESET RESET
40H WRITE Write to Information Fields
41H MASKED WRITE Set Track Status Information Fields
44H 00H LOCATE I/F LOCATE (Read Locator)
44H 01H LOCATE TARGET LOCATE (Designated Time)
4CH MOVE Move between Information fields
Commands Transmitted
Command Action
01H STOP STOP
03H DEFERRED PLAY PLAY
06H RECORD STROBE REC / PUNCH IN
07H RECORD EXIT PUNCH OUT
0DH MMC RESET RESET
44H 01H LOCATE TARGET LOCATE
Valid Information Fields / Response
Information Field Interpret Valid Commands
01H SELECTED TIME CODE Current Time MOVE (FROM)
08H GP0 / LOCATE POINT Locator 1 MOVE (FROM), MOVE (TO), WRITE
09H GP1 Locator 2 MOVE (FROM), MOVE (TO), WRITE
0AH GP2 Locator 3 MOVE (FROM), MOVE (TO), WRITE
0BH GP3 Locator 4 MOVE (FROM), MOVE (TO), WRITE
0CH GP4 Locator 5 MOVE (FROM), MOVE (TO), WRITE
0DH GP5 Locator 6 MOVE (FROM), MOVE (TO), WRITE
0EH GP6 Locator 7 MOVE (FROM), MOVE (TO), WRITE
0FH GP7 Locator 8 MOVE (FROM), MOVE (TO), WRITE
4FH TRACK RECORD READY Track Status MASKED WRITE, WRITE
Copyright © 1999 ROLAND CORPORATION
All rights reserved. No part of this publication may be
reproduced in any form without the written permission of
ROLAND CORPORATION.