Implementación MIDI
Format 2 - LOCATE[TARGET]
Status
Data Bytes
F0H
7FH,Dev,06H,44H,06H,01H,hrH,mnH,scH,frH,ffH
Byte
Description
F0H
Status of System Exclusive Message
7FH
Universal System Exclusive Message Realtime Header
Dev
Device ID (or 7FH)
06H
MMC Command Message
44H
LOCATE(MCP)
06H
Number of Bytes
01H
"TARGET" sub command
hrH, mnH, scH, frH, ffH
Standard Time with Sub Frame
F7H
EOX (End of System Exclusive Message)
If the device ID on the message was as same as that of the receiving device or 7FH, the VS-
1680 locates the specified time location received from the command.
If the efficient locate switch [LOC?] or Marker switch [PREVIOUS][NEXT] is pressed, the
VS-1680 transmits as the device ID 7FH.
MOVE
Status
Data Bytes
F0H
7FH,Dev,06H,4CH,02H,ddH,ssH
Byte
Description
F0H
Status of System Exclusive Message
7FH
Universal System Exclusive Message Realtime Header
Dev
Device ID (or 7FH)
06H
MMC Command Message
4CH
MOVE
02H
Number of Bytes
ddH
Name of the Efficient Destination Information Field
(08H,09H,0AH,0BH,0CH,0DH,0EH,0FH)
ssH
Name of the Efficient Source Information Field
F7H
EOX (End of System Exclusive Message)
If the device ID on the message was as same as that of the receiving device or 7FH, the VS-
1680 transfers the data on the selected source information field to the destination
Information Field, if the name of both information fields is efficient. The VS-1680 does not
transmit the message.
The efficient Information Field
The followings are the efficient Information Field on the VS-1680.
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
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 ||
+——————+——————++——————+——————++——————+——————++——————+——————+
|
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 ||
56
Status
F7H
Status
F7H
(01H)
dec |
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 |
|
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.
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
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 |