<Example 4> B3 64 00 65 00 06 0C 26 00 64 7F 65 7F
BnH is the Control Change status, and 'n' is the MIDI channel number. In Control Change
messages, the 2nd byte is the controller number, and the 3rd byte is the parameter value.
MIDI allows what is known as "running status," when if messages of the the same status
follow each other, it is permitted to omit the second and following status bytes. In the mes-
sage above, running status is being used, meaning that the message has the following con-
tent.
B3 64 00
MIDI CH = 4, RPN parameter number LSB
(B3) 65 00
MIDI CH = 4, RPN parameter number MSB
(B3) 06 0C
MIDI CH = 4, parameter value MSB
(B3) 26 00
MIDI CH = 4, parameter value LSB
(B3) 64 7F
MIDI CH = 4, RPN parameter number LSB
(B3) 65 7F
MIDI CH = 4, RPN parameter number MSB
Thus, this message transmits a parameter value of 0C 00H to RPN parameter number 00
00H on MIDI CH = 4, and then sets the RPN parameter number to 7F 7FH.
The function assigned to RPN parameter number 00 00H is Pitch Bend Sensitivity, and the
MSB of the parameter value indicates semitone steps. Since the MSB of this parameter
value is 0CH = 12, the maximum width of pitch bend is being set to ±12 semitones (1 octa-
ve) (GS sound sources ignore the LSB of Pitch Bend Sensitivity, but it is best to transmit the
LSB (parameter value 0) as well, so that the message can be correctly received by any devi-
ce.
Once the parameter number has been set for RPN or NRPN, all subsequent Data Entry
messages on that channel will be effective. Thus, it is recommended that after you have
made the change you want, you set the parameter number to 7F 7FH (an "unset" or "null"
setting). The final (B3) 64 7F (B3) 65 7F is for this purpose.
It is not a good idea to store many events within the data of a song (e.g., a Standard MIDI
File song) using running status as shown in <Example 4>. When the song is paused, fast-
forwarded or rewound, the sequencer may not be able to transmit the proper status, cau-
sing the sound source to misinterpret the data. It is best to attach the proper status byte to
all events.
It is also important to transmit RPN or NRPN parameter number settings and parameter
values in the correct order. In some sequencers, data events recorded in the same clock (or
a nearby clock) can sometimes be transmitted in an order other than the order in which
they were recorded. It is best to record such events at an appropriate interval (1 tick at
TPQN=96, or 5 ticks at TPQN=480).
* TPQN : Ticks Per Quarter Note (i.e., the time resolution of the sequencer)
3.3 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.
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 ccH and the data or size is dd ee ffH.
aa+bb+cc+dd+ee+ff = sum
sum ÷ 128 = quotient ... remainder
128–remainder = checksum
<Example 1> Setting REVERB MACRO to ROOM 3
According to the "Parameter Address Map," the REVERB MACRO Address is 40 01 30H,
and ROOM 3 is a value of 02H. Thus,
F0 41 10 42 12 40 01 30 02 ?? F7
(1) (2) (3) (4) (5) address data checksum (6)
(1) Exclusive Status,
(2) ID (Roland),
(4) Model ID (GS),
(5) Command ID (DT1),
Next we calculate the checksum.
40H+01H+30H+02H = 64+1+48+2 = 115 (sum)
115 (sum) ÷ 128 = 0 (quotient) ... 115 (remainder)
checksum = 128–115 (remainder) = 13 = 0DH
: 00H
: 00H
: 0CH
: 00H
: 7FH
: 7FH
(3) Device ID (17),
(6) End of Exclusive
This means that F0 41 10 42 12 40 01 30 02 0D F7 is the message we transmit.
<Example 2> Requesting transmission of the LEVEL for DRUM MAP 1
NOTE NUMBER 75 (D#5; Claves)
NOTE NUMBER 75 (D#5) is 4BH in hexadecimal.
According to the "Parameter Address Map," LEVEL of NOTE NUMBER 75 (D#5; Claves)
in DRUM MAP 1 has an Address of 41 02 4BH and a Size of 00 00 01H. Thus,
F0 41 10 42 11 41 02 4B 00 00 01 ?? F7
(1) (2) (3) (4) (5) address size checksum (6)
(1) Exclusive Status,
(2) ID (Roland),
(4) Model ID (GS),
(5) Command ID(RQ1),
Next we calculate the checksum.
41H+02H+4BH+00H+00H+01H = 65+2+75+0+0+1 = 143 (sum)
143 (sum) ∏ 128 = 1 (quotient) ... 15 (remainder)
checksum = 128–15 (remainder) = 113 = 71H
This means that F0 41 10 42 11 41 02 4B 00 00 01 71 F7 is the message we transmit.
Apéndices
(3) Device ID (17),
(6) End of Exclusive
155