The efficient Information Field
The followings are the efficient Information Field on the SP-808.
The name of the efficient destination Information Field:
01H SELECTED TIME CODE
08H GP0 / LOCATE POINT
09H GP1
0AH GP2
0BH GP3
0CH GP4
0DH GP5
0EH GP6
0FH GP7
4FH TRACK RECORD READY
5. 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 |
+——————+——————++——————+——————++——————+——————++——————+——————+
|
0 |
00H ||
32 |
20H ||
|
1 |
01H ||
33 |
21H ||
|
2 |
02H ||
34 |
22H ||
|
3 |
03H ||
35 |
23H ||
|
4 |
04H ||
36 |
24H ||
|
5 |
05H ||
37 |
25H ||
|
6 |
06H ||
38 |
26H ||
|
7 |
07H ||
39 |
27H ||
|
8 |
08H ||
40 |
28H ||
|
9 |
09H ||
41 |
29H ||
|
10 |
0AH ||
42 |
2AH ||
|
11 |
0BH ||
43 |
2BH ||
|
12 |
0CH ||
44 |
2CH ||
|
13 |
0DH ||
45 |
2DH ||
|
14 |
0EH ||
46 |
2EH ||
|
15 |
0FH ||
47 |
2FH ||
|
16 |
10H ||
48 |
30H ||
|
17 |
11H ||
49 |
31H ||
|
18 |
12H ||
50 |
32H ||
|
19 |
13H ||
51 |
33H ||
|
20 |
14H ||
52 |
34H ||
|
21 |
15H ||
53 |
35H ||
|
22 |
16H ||
54 |
36H ||
|
23 |
17H ||
55 |
37H ||
|
24 |
18H ||
56 |
38H ||
|
25 |
19H ||
57 |
39H ||
|
26 |
1AH ||
58 |
3AH ||
|
27 |
1BH ||
59 |
3BH ||
|
28 |
1CH ||
60 |
3CH ||
|
29 |
1DH ||
61 |
3DH ||
|
30 |
1EH ||
62 |
3EH ||
|
31 |
1FH ||
63 |
3FH ||
+——————+——————++——————+——————++——————+——————++——————+——————+
* 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.
hex ||
dec |
hex |
64 |
40H ||
96 |
60H |
65 |
41H ||
97 |
61H |
66 |
42H ||
98 |
62H |
67 |
43H ||
99 |
63H |
68 |
44H ||
100 |
64H |
69 |
45H ||
101 |
65H |
70 |
46H ||
102 |
66H |
71 |
47H ||
103 |
67H |
72 |
48H ||
104 |
68H |
73 |
49H ||
105 |
69H |
74 |
4AH ||
106 |
6AH |
75 |
4BH ||
107 |
6BH |
76 |
4CH ||
108 |
6CH |
77 |
4DH ||
109 |
6DH |
78 |
4EH ||
110 |
6EH |
79 |
4FH ||
111 |
6FH |
80 |
50H ||
112 |
70H |
81 |
51H ||
113 |
71H |
82 |
52H ||
114 |
72H |
83 |
53H ||
115 |
73H |
84 |
54H ||
116 |
74H |
85 |
55H ||
117 |
75H |
86 |
56H ||
118 |
76H |
87 |
57H ||
119 |
77H |
88 |
58H ||
120 |
78H |
89 |
59H ||
121 |
79H |
90 |
5AH ||
122 |
7AH |
91 |
5BH ||
123 |
7BH |
92 |
5CH ||
124 |
7CH |
93 |
5DH ||
125 |
7DH |
94 |
5EH ||
126 |
7EH |
95 |
5FH ||
127 |
7FH |
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
01H SELECTED TIME CODE
Current Time
08H GP0/LOCATE POINT
Locator 1
09H GP1
Locator 2
0AH GP2
Locator 3
0BH GP3
Locator 4
0CH GP4
Locator 5
0DH GP5
Locator 6
0EH GP6
Locator 7
0FH GP7
Locator 8
4FH TRACK RECORD READY
Track Status
* SP-808 transforms the Information Fields GP0-GP7 which are written by the MMC
WRITE COMMAND (40H) to MEASURE/BEAT/TICK format data which accord with
current tempo and time signature, and then registers them to the locators 1–8.
1
Apéndices
2
3
4
5
6
7
8
9
Valid Commands
10
MOVE (FROM)
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
11
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
MOVE (FROM), MOVE (TO), WRITE
MASKED WRITE, WRITE
12
13
14
15
175