Roland Edirol PCR-1 Owner's Manual page 120

Usb audio interface/midi keyboard controller
Table of Contents

Advertisement

MIDI implementation
4. Supplementary material
●Decimal and Hexadecimal table
(An "H" is appended to the end of numbers in hexadecimal notation.)
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.
fig.11-22e
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
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
* The decimal expression of the MIDI channel, program change, etc., is one
greater than the decimal value shown in the table above.
* The hexadecimal expression for each 7 bits allows a maximum of 128 steps (0--
127) to be expressed by one byte of data. Multiple bytes are used if the data
requires greater resolution than this. For example, a value expressed by two 7-
bit bytes "aa" and "bbH" would be aa x 128 + bb.
* In the case of signed (+/-) data, 00H = -64, 40H = +/-0, and 7FH = +63; i.e., a
value 64 less than the decimal value shown in the above table is used. In the case
of a two-byte value, 00 00H = -8192, 40 00 = +/-0, and 7F 7F = +8191. For
example, a value of "aa" and "bbH" would have a decimal expression of aa bbH
- 40 00H = aa x 128 + bb - 64 x 128.
* In the case of data indicated as "use nibble data," hexadecimal expression in 4-
bit units is used. A nibble-expressed value of the two bytes 0a and 0bH would
have a value of a x 16 + b.
<Example1>
What is the decimal expression of 5AH?
From the preceding table, 5AH = 90.
<Example2>
What is the decimal expression of the 7-bit hexadecimal value 12 34H?
From the preceding table, 12H = 18, and 34H = 52.
Thus, this is
18 x 128 + 52 = 2356
<Example3>
What is the decimal expression of the nibble-expressed value 0A 03 09 0D?
From the preceding table, 0AH = 10, 03H = 3, 09H = 9, and 0DH = 13.
Thus, this is
((10 x 16 + 3) x 16 + 9) x 16 + 13 = 41885
120
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
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
<Example4> What is the nibble-expressed value of decimal 1258?
1258 ÷ 16 = 78 (quotient) ... 10 (remainder)
78 ÷ 16 = 4 (quotient) ... 14 (remainder)
4 ÷ 16 = 0 (quotient) ... 4 (remainder)
From the preceding table, 0 = 00H, 4 = 04H, 14 = 0EH, 10 = 0HA.
Thus, the nibble-expressed value is
●Example of an actual MIDI message
<Example1> CE 04
CnH is the Program Change status. "n" is the MIDI channel number. EH = 14, and
04H = 04. Thus, this is a program change message on MIDI channel 15, for program
number 05.
●Checksum calculation
In order to verify that the message was received correctly, Roland exclusive
messages (RQ1, DT1) add a checksum following the end of the data (before the F7).
The checksum value is determined by the address and data (or size) of the
exclusive message that is transmitted.
❍Calculating the checksum
("H" has been added following hexadecimal values)
The checksum is a value that results in a lower 7 bits of 0 when the address, size,
and checksum itself are added together.
Specifically, the calculation will be as follows when the exclusive message you
want to transmit has an address of aa bb ccH and data or size of dd ee ffH.
aa + bb + cc + dd + ee + ff = total
total ÷ 128 = quotient ... remainder
128 - remainder = checksum
* However, as an exception, the checksum for a remainder of 0 is not 80H but
rather 00H.
00 04 0E 0AH

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents