Roland SH-01 Midi Implementation Manual page 20

Midi implementation
Hide thumbs Also See for SH-01:
Table of Contents

Advertisement

MIDI Implementation
n Example of an Exclusive Message and Calculating a
Checksum
Roland Exclusive messages (RQ1, DT1) are transmitted with a checksum at the end
(before F7) to make sure that the message was correctly received. The value of the
checksum is determined by the address and data (or size) of the transmitted Exclusive
message.
l How to calculate the checksum
(hexadecimal numbers are indicated by "H")
The checksum is a value derived by adding the address, size, and checksum itself and
inverting the lower 7 bits.
Here's an example of how the checksum is calculated. We will assume that in the
Exclusive message we are transmitting, the address is aa bb cc ddH and the data or
size is ee ffH.
aa + bb + cc + dd + ee + ff = sum
sum ÷ 128 = quotient ... remainder
128 - remainder = checksum
<Example 1> Setting OSC Wave of Temporary Patch to SUPER-SAW (DT1)
According to the "Parameter Address Map" (p. 8), the start address of Temporary Patch
is 10 00 00 00H, the offset address of Tone 1 is 01 00H, and the address of OSC Wave is
00 00H. Therefore the address is;
10 00 00 00H
01 00H
+)
00 00H
10 00 01 00H
SUPER-SAW has the value of 06H.
So the system exclusive message should be sent is;
F0
41
10
00 00 41
12
(1)
(2)
(3)
(4)
(5)
(1) Exclusive Status, (2) ID (Roland), (3) Device ID (17),
(4) Model ID (SH-01), (5) Command ID (DT1), (6) End of Exclusive
Then calculate the checksum.
10H + 00H + 01H + 00H + 06H = 16 + 0 + 1 + 0 + 6 = 23 (sum)
23 (sum) ÷ 128 = 0 (quotient) ... 23 (remainder)
checksum = 128 - 23 (remainder) = 105 = 69H
This means that F0 41 10 00 00 41 12 10 00 01 00 06 69 F7 is the message should be
sent.
20
10 00 01 00
06
??
address
data
checksum
<Example 2> Getting the data (RQ1) of REVERB in USER PATCH:A-2
According to the "Parameter Address Map" (p. 8), the start address of USER PATCH:A-2 is
20 01 00 00H, and the offset address of REVERB is 00 0A 00H.
Therefore the start address of REVERB in USER PATCH:A-2 is;
20 01 00 00H
+)
00 0A 00H
20 01 0A 00H
As the size of REVERB is 00 00 00 51H, the system exclusive message should be sent is;
F0
41
10
00 00 41
(1)
(2)
(3)
(1) Exclusive Status, 2) ID (Roland), (3) Device ID (17),
(4) Model ID (SH-01), (5) Command ID (RQ1), (6) End of Exclusive
Then calculate the checksum.
20H + 01H + 0AH + 00H + 00H + 00H + 00H + 51H = 32 + 1 + 10 + 0 + 0 + 0 + 0 + 81
= 124 (sum)
124 (sum) ÷ 128 = 0 (quotient) ... 124 (remainder)
checksum = 128 - 124 (remainder) = 4 = 04H
This means that F0 41 10 00 00 41 11 20 01 0A 00 00 00 00 51 04 F7 is the message
should be sent.
<Example 3> Getting Temporary Patch data (RQ1)
According to the "Parameter Address Map" (p. 8), the start address of Temporary Patch
is assigned as following:
10 00 00 00
The offset address of Patch is also assigned as follows:
F7
00 00 00
(6)
00 01 00
00 02 00
00 03 00
00 04 00
00 06 00
00 08 00
00 0A 00
00 0C 00
00 0D 00
00 0E 00
:
00 1C 00
11
20 01 0A 00
00 00 00 51
(4)
(5)
address
data
Temporary Patch
Patch Common
Patch Tone 1
Patch Tone 2
Patch Tone 3
Patch Distortion
Patch Flanger
Patch Delay
Patch Reverb
Patch Arpeggio Common
Patch Arpeggio Pattern (Note 1)
Patch Arpeggio Pattern (Note 2)
Patch Arpeggio Pattern (Note 16)
??
F7
checksum
(6)

Advertisement

Table of Contents
loading

Table of Contents