Roland XP-60 Owner's Manual Page 204

  • Download
  • Add to my manuals
  • Print
  • Page
    / 216
  • Table of contents
  • TROUBLESHOOTING
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 203
204
MIDI Implementation
Examples of 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
(hexadecimal values are indicated by a H)
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
<Example 1> Setting the Performance Common REVERB TYPE to DELAY (DT1)
The Parameter address map indicates that the starting address of the Temporary
Performance is 01 00 00 00H, that the Performance Common offset address is 00 00H, and
that the REVERB TYPE address is 00 28H. Thus, the address is:
01 00 00 00H
00 00H
+) 00 28H
01 00 00 28H
Since DELAY is parameter value 06H,
F0 41 10 6A 12 01 00 00 28 06 ?? F7
(1) (2) (3) (4) (5) address data checksum (6)
(1) Exclusive status (2) ID number (Roland) (3) Device ID (17)
(4) Model ID (XP-30) (5) Command ID (DT1) (6) EOX
Next we calculate the checksum.
01H + 00H + 00H + 28H + 06H = 1 + 0 + 0 + 40 + 6 = 47 (sum)
47 (total) / 128 = 0 (quotient) ... 47 (remainder)
checksum = 128 - 47 (quotient) = 81 = 51H
This means that the message transmitted will be F0 41 10 6A 12 01 00 00 28 06 51 F7.
<Example 2> Retrieving data for USER:03 Performance Part 3 (RQ1)
The Parameter Address Map indicates that the starting address of USER:03 is 10 02 00
00H, and that the offset address of Performance Part 3 is 12 00H. Thus, the address is:
10 02 00 00H
+) 12 00H
10 02 12 00H
Since the size of the Performance Part is 00 00 00 19H,
F0 41 10 6A 11 10 02 12 00 00 00 00 19 ?? F7
(1) (2) (3) (4) (5) address size checksum (6)
(1) Exclusive status (2) ID number (Roland) (3) Device ID (17)
(4) Model ID (XP-30) (5) Command ID (RQ1) (6) EOX
Next we calculate the checksum.
10H + 02H + 12H + 00H + 00H + 00H + 00H + 19H =
16 + 2 + 18 + 0 + 0 + 0 + 0 + 25 = 61 (sum)
61 (total) / 128 = 0 (product) ... 61 (remainder)
checksum = 128 - 61 (remainder) = 67 = 43H
Thus, a message of F0 41 10 6A 11 10 02 12 00 00 00 00 19 43 F7 would be transmitted.
<Example 3> Retrieving data for Temporary Performance (RQ1)
* When a data transfer is executed in Utility mode, data that is accessed will be the same
as that which is transmitted when the Type parameter is set to PERFORM and the Source
parameter is set to TEMP: -PATCH
The Parameter Address Map gives the following start addresses for Temporary
Performance data.
01 00 00 00H Temporary Performance Common
01 00 10 00H Temporary Performance Part 1
:
01 00 1F 00H Temporary Performance Part 16
Since Performance Part has a size of 00 00 00 19H, we add that size to the start address of the
Temporary Performance Part 16, resulting in:
01 00 1F 00H
+) 00 00 00 19H
01 00 1F 19H
Thus, the Size for the retrieved data will be:
01 00 1F 19H
-) 01 00 00 00H
00 00 1F 19H
F0 41 10 6A 11 01 00 00 00 00 00 1F 19 ?? F7
(1) (2) (3) (4) (5) address size checksum (6)
(1) Exclusive status (2) ID number (Roland) (3) Device ID (17)
(4) Model ID (XP-30) (5) Command ID (RQ1) (6) EOX
Calculating the checksum as shown in <Example 2>, we get a message of F0 41 10 6A 11 01
00 00 00 00 00 1F 19 47 F7 to be transmitted.
<Example 4> Retrieving the Temporary Performance data together with all Temporary
Part and Rhythm Set data (RQ1)
* When a data transfer is executed in Utility mode, the data that is accessed will be the
same as that which is transmitted when the Type parameter is set to PERFORM and the
Source parameter is set to TEMP: +PATCH
The Parameter Address Map gives the following start addresses for Temporary
Performance, Performance Mode Temporary Patch and Performance Mode Temporary
Rhythm.
01 00 00 00H Temporary Performance
02 00 00 00H Performance Mode Temporary Patch(part 1)
:
02 08 00 00H Performance Mode Temporary Patch(part 9)
02 09 00 00H Temporary Rhythm Setup
02 0A 00 00H Performance Mode Temporary Patch(part 11)
:
02 0F 00 00H Performance Mode Temporary Patch(part 16)
The Patch offset addresses are as follows.
00 00H Patch Common
10 00H Patch Tone 1
:
16 00H Patch Tone 4
Since Patch Tone has a size of 00 00 01 01H, we add this size to the start address of
Performance Mode Temporary Patch (Part 16) Tone 4, to get:
02 0F 00 00H
16 00H
+) 00 00 01 01H
02 0F 17 01H
Thus, the size of the retrieved data will be:
02 0F 17 01H
-) 01 00 00 00H
01 0F 17 01H
F0 41 10 6A 11 01 00 00 00 01 0F 17 01 ?? F7
(1) (2) (3) (4) (5) address size checksum (6)
(1) Exclusive status (2) ID number (Roland) (3) Device ID (17)
(4) Model ID (XP-30) (5) Command ID (RQ1) (6) EOX
Calculating the checksum as shown in <Example 2>, we get a message of F0 41 10 6A 11 01
00 00 00 01 0F 17 01 57 F7 to be transmitted.
Page view 203
1 2 ... 199 200 201 202 203 204 205 206 207 208 209 ... 215 216

Comments to this Manuals

No comments