Examples Of Actual Midi Messages; Supplementary Material - Roland VK-88 Owner's Manual

Roland vk-88: owners manual
Table of Contents

Advertisement

• Registration FX
+-----------------------------------------------------------------+
| Offset
|
|
Address |
|-------------+---------------------------------------------------|
|
00 00 | 0000 000a | Vibrato Chorus Upper Switch
|
|
|
|
00 01 | 0000 000a | Vibrato Chorus Lower Switch
|
|
|
|
00 02 | 0000 0aaa | Vibrato Chorus Type
|
|
|
|
00 03 | 0000 00aa | Vibrato Chorus Vintage
|
|
|
|-------------+-----------+---------------------------------------|
|
00 04 | 0aaa aaaa | Rotary Speed
|
00 05 | 0000 000a | Rotary Brake
|
|
|
|
00 06 | 0000 000a | Rotary Bypass
|
|
|
|-------------+-----------+---------------------------------------|
|
00 07 | 0000 00aa | Amp & Speaker
|
|
|
|
00 08 | 0aaa aaaa | Overdrive
|
|
|
|
00 09 | 0aaa aaaa | Tone
|
|
|
|-------------+-----------+---------------------------------------|
|
00 0A | 0000 000a | Ring Modulator Switch
|
|
|
|
00 0B | 0aaa aaaa | Ring Modulator Frequency
|-------------+-----------+---------------------------------------|
|
00 0C | 0000 00aa | Reverb Type
|
|
|
|
00 0D | 0aaa aaaa | Reverb Level
|
00 0E | 0aaa aaaa | Reverb Time
|-------------+-----------+---------------------------------------|
|
00 0F | 0aaa aaaa | Chorus Level
|-------------+---------------------------------------------------|
| 00 00 00 10 | Total Size
+-----------------------------------------------------------------+

4. Supplementary material

■Decimal/Hexadecimal Table
MIDI uses 7-bit hexadecimal values to indicate data values and the address and size of
exclusive messages. The following table shows
the correspondence between decimal and hexadecimal numbers.
* Hexadecimal values are indicated by a following 'H.'
+——————+——————++——————+——————++——————+——————++——————+——————+
|
D
|
H
||
D
|
H
||
+——————+——————++——————+——————++——————+——————++——————+——————+
|
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 ||
+——————+——————++——————+——————++——————+——————++——————+——————+
D: decimal
H: hexadecimal
* Decimal expressions such as used for MIDI channel, Bank Select, and Program Change
will be the value 1 greater than the decimal value given in the above table.
* Since each MIDI byte carries 7 significant data bits, each byte can express a maximum of
128 different values. Data for which higher resolution is required must be transmitted
using two or more bytes. For example a value indicated as a two-byte value of aa bbH
would have a value of aa x 128 + bb.
* For a signed number (±), 00H = -64, 40H = ±0, and 7FH = +63. I.e., the decimal equivalent
will be 64 less than the decimal value given in the above table. For a two-byte signed
number, 00 00H = -8192, 40 00H = ±0, and 7F 7FH = +8191. For example the decimal
expression of aa bbH would be aa bbH - 40 00H = aa x 128 + bb - 64 x 128.
Hexadecimal notation in two 4-bit units is used for data indicated as "nibbled." The
nibbled two-byte value of 0a 0b H would be a x 16 + b.
<Example1> What is the decimal equivalent of 5AH?
From the above table, 5AH = 90.
Description
(0 - 1) |
OFF, ON
(0 - 1) |
OFF, ON
(0 - 5) |
V-1, V-2, V-3, C-1, C-2, C-3
(0 - 2) |
'50, '60, '70
(0 - 127) |
(0 - 1) |
OFF, ON
(0 - 1) |
OFF, ON
(0 - 3) |
TYPE I, TYPE II, TYPE III, TYPE IV
(0 - 127) |
OFF, 1 - 127
(1 - 127) |
-63 - +63
(0 - 1) |
OFF, ON
(0 - 127) |
(0 - 3) |
ROOM, HALL, CHURCH, SPRING
(0 - 127) |
(0 - 127) |
(0 - 127) |
D
|
H
||
D
|
H
|
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 |
<Example2> What is the decimal equivalent of the 7-bit hexadecimal
values 12 34H?
|
|
From the above table, 12H = 18 and 34H = 52
Thus, 18 x 128 + 52 = 2356
|

■Examples of Actual MIDI Messages

|
|
<Example1> 93 3E 5F
|
9n is the Note On status and 'n' is the MIDI channel number. Since 3H = 3, 3EH = 62, and
5FH = 95, this is a Note On message of MIDI CH = 4, note number 62 (note name D4) and
velocity 95.
|
|
<Example2> C0 25
CnH is the Program Change status and 'n' is the MIDI channel number. Since 0H = 0, and
|
25H = 37, this is a Program Change message of MIDI CH = 1, Program number 38
■Examples of System Exclusive Messages and
|
|
Calculating the Checksum
Roland exclusive messages (RQ1, DT1) are transmitted with a checksum at the end of the
|
data (before F7) to check that the data was received correctly. The value of the checksum is
determined by the address and data (or size) of the exclusive message.
|
●How to calculate the checksum
The checksum consists of a value whose lower 7 bits are 0 when the address, size and
checksum itself are added. The following formula shows how to calculate the checksum
|
when the exclusive message to be transmitted has an address of aa bb cc ddH, and data or
size of ee ffH.
aa + bb + cc + dd + ee + ff = total
total ÷ 128 = quotient ... remainder
128 - remainder = checksum
<Example1> Turn the Temporary Registration Organ Pedal Sustain
switch ON (DT1).
The "Parameter address map" indicates that the starting address of the Temporary
Registration is 10 00 00 00H, that the Registration Organ Parameter offset address is 10 00H,
and that the "PEDAL SUSTAIN SWITCH" address is 00 14H. Thus, the address is:
10 00 00 00H
10 00H
+)
00 14H
---------------
10 00 10 14H
Since "ON" is parameter value 01H,
F0
41
10
00 65
12
(1)
(2)
(3)
(4)
(5)
(1) Exclusive status
(2) ID number (Roland)
(4) model ID (VK-88)
(5) command ID (DT1)
Next we calculate the checksum.
10H + 00H + 10H + 14H + 01H = 16 + 0 + 16 + 20 + 1 = 53 (sum)
53 (total) ÷ 128 = 0 (quotient)... 53 (remainder)
checksum = 128 - 53 (quotient) = 75 = 4BH
This means that the message transmitted will be F0 41 10 00 65 12 10 00 10 14 01 4B F7.
<Example2> Obtain registration organ parameter data for User
Registration: 02 (RQ1).
The "Parameter address map" indicates that the starting address of USER: 02 is 20 01 00
00H, and that the offset address of Organ Parameter is 10 00H. Thus, the address is:
20 01 00 00H
+)
10 00H
---------------
20 01 10 00H
Since the size of the Performance Part is 00 00 00 21H,
F0
41
10
00 65
11
(1)
(2)
(3)
(4)
(5)
(1) Exclusive status
(2) ID number (Roland)
(4) Model ID (VK-88)
(5) Command ID (RQ1)
Next we calculate the checksum.
20H + 01H + 10H + 00H + 00H + 00H + 00H + 21H =
32 + 1 + 16 + 0 + 0 + 0 + 0 + 33 = 82 (sum)
82 (total) ÷ 128 = 0 (product)... 82 (remainder)
checksum = 128 - 82 (remainder) = 46 = 2EH
Thus, a message of F0 41 10 00 65 11 20 01 10 00 00 00 00 21 2E F7 would be transmitted.
MIDI Implementation
10 00 10 14
01
??
address
data
checksum
(3) device ID(17)
(6) EOX
20 01 10 00
00 00 00 21
??
address
data
checksum
(3) Device ID (17)
(6) EOX
F7
(6)
F7
(6)
107

Advertisement

Table of Contents
loading

Table of Contents