Roland JP-8080 Manual Del Usuario página 212

Tabla de contenido

Publicidad

<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 message above, running status is being used, meaning that the message has the following content.
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
octave) (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 device.
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,
causing 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)
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 Temporary Performance Upper Part Transpose to +5 (DT1).
The ÒParameter address mapÓ indicates that the starting address of the Temporary
Performance is 01 00 00 00H, that Temporary Performance upper Part offset address is 10
00H, Part Transpose is 00 03H. Thus,the adress is:
01 00 00 00H
10 00H
+)
00 03H
01 00 10 03H
Since +5 is parameter value 1DH,
F0
41
10
00 06
12
01 00 10 03
(1)
(2)
(3)
(4)
(5)
(1) Exclusive status
(2) ID number (Roland)
(4) model ID (JP-8080)
(5) command ID (DT1)
00H
00H
0CH
00H
7FH
7FH
1D
??
address
data
checksum
(3) device ID (17)
(6) EOX
Next we calculate the checksum.
01H + 00H + 10H + 03H + 1DH = 1 + 0 + 16 + 3 + 29 = 49 (sum)
49 (total) 128 Ö 0 (quotient) ... 49 (remainder)
checksum = 128 - 49 (quotient) = 79 = 4FH
This means that the message transmitted will be F0 41 10 00 06 12 01 00 10 03 1D 4F F7 .
<Example 2>
Retrieving data for Patch of Performance USER: 13 Lower Part.
The ÒParameter address mapÓ indicates that the starting address of the User Performance
is 03 00 00 00H, the start address of Performance USER:13
is 03 00 00 00H, and that the offset address of Performance Lower Patch is 00 00 42 00H.
Thus,the adress is:
03 00 00 00H
00 02 00 00H
+) 00 00 42 00H
03 02 42 00H
Since the size of the Performance Patch is 00 00 01 78H,
F0
41
10
00 06
(1)
(2)
(3)
(4)
(1) Exclusive status
(4) model ID (JP-8080)
Next we calculate the checksum.
03H + 02H + 42H + 00H + 00H + 00H + 01H + 78H = 3 + 2 + 66 + 0 + 0 + 0 + 1 + 120 = 192 (sum)
192 (total) Ö 128 = 1(quotient) ... 64 (remainder)
checksum = 128 - 64 (quotient) = 64 = 40H
Thus,a message of F0 41 10 00 06 11 03 02 42 00 00 00 01 6D 40 F7 would be transmitted.
<Example 3> Retrieving data for Temporary Performance (RQ1)
The ÒParameter address mapÓ gives the following start addresses for Temporary
Performance data.
01 00 00 00H Temporary Performance Common
01 00 08 00H Voice Modulator
01 00 10 00H Part (Upper)
01 00 11 00H Part (Lower)
01 00 40 00H Patch(Upper)
01 00 42 00H Patch(Lower)
Since Patch has a size of 00 00 01 78H, we add that size to the start address of the
Temporary Patch Lower Part, resulting in:
01 00 42 00H
+) 00 00 01 78H
01 00 43 78H
Thus, the Size for the retrieved data will be:
01 00 43 78H
-) 01 00 00 00H
00 00 43 78H
F0
41
10
00 06
(1)
(2)
(3)
(4)
(1) Exclusive status
(4) model ID (JP-8080)
Calculating the checksum as shown in <Example 2>, we get a message of F0 41 10 00 06 11
01 00 00 00 00 00 43 6FH 44 F7 to be transmitted.
F7
(6)
11
03 02 42 00
00 00 01 78
(5)
address
data
(2) ID number (Roland)
(3) device ID (17)
(5) command ID (DT1)
(6) EOX
11
01 00 00 00
00 00 43 78
(5)
address
size
(2) ID number (Roland)
(3) device ID (17)
(5) command ID (RQ1)
(6) EOX
??
F7
checksum
(6)
??
F7
checksum
(6)
211

Publicidad

Tabla de contenido
loading

Tabla de contenido