19
Roland E-09 MIDI Implementation
but the LSB should be transmitted anyway (with a value of 0) so that operation will be
correct on any device.)
Once the parameter number has been specified for RPN or NRPN, all Data Entry messages
transmitted on that same channel will be valid, so after the desired value has been
transmitted, it is a good idea to set the parameter number to 7F 7FH to prevent accidents.
This is the reason for the (B3) 64 7F (B3) 65 7F at the end.
It is not desirable for performance data (such as Standard MIDI File data) to contain many
events with running status as given in [Example 4]. This is because if playback is halted
during the song and then rewound or fast-forwarded, the sequencer may not be able to
transmit the correct status, and the sound generator will then misinterpret the data. Take
care to give each event its own status.
It is also necessary that the RPN or NRPN parameter number setting and the value setting
be done in the proper order. On some sequencers, events occurring in the same (or
consecutive) clock may be transmitted in an order different than the order in which they
were received. For this reason it is a good idea to slightly skew the time of each event (about
1 tick for TPQN = 96, and about 5 ticks for TPQN = 480).
* TPQN: Ticks Per Quarter Note
■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), (3) Device ID (17),
(4) Model ID (GS), (5) Command ID (DT1), (6) End of Exclusive
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
This means that F0 41 10 42 12 40 01 30 02 0D F7 is the message we transmit.
[Example 2] Setting REVERB LEVEL to 12
According to the “Parameter Address Map,” the REVERB LEVEL Address is 40 01 33H, and
the parameter value is 0CH. Thus:
F0 41 10 42 12 40 01 33 0C ?? F7
(1) (2) (3) (4) (5) address data checksum (6)
(1) Exclusive Status, (2) ID (Roland), (3) Device ID (17),
(4) Model ID (GS), (5) Command ID (DT1), (6) End of Exclusive
Next, we calculate the checksum.
40H + 01H + 33H + 0CH = 64 + 1 + 51 + 12 = 128 (sum)
128 (sum) ÷ 128 = 0 (quotient) ... 0 (remainder)
checksum = 128 - 0 (remainder) = 128 = 80H
In this case, however, the checksum value should be 00H, not 80H. You should use 00H if
the remainder is 0.
This means that F0 41 10 42 12 40 01 33 0C 00 F7 is the message we transmit.
■About the Tuning
In MIDI, individual Parts are tuned by sending RPN #1 (Channel Fine Tuning) to the
appropriate MIDI channel.
In MIDI, an entire device is tuned by either sending RPN #1 to all MIDI channels being
used, or by sending a System Exclusive MASTER TUNE (address 40 00 00H).
RPN #1 allows tuning to be specified in steps of approximately 0.012 cents (to be precise,
100/8192 cent), and System Exclusive MASTER TUNE allows tuning in steps of 0.1 cent.
One cent is 1/100th of a semitone.
The values of RPN #1 (Channel Fine Tuning) and System Exclusive MASTER TUNE are
added together to determine the actual pitch sounded by each Part.
Frequently used tuning values are given in the following table for your reference. Values
are in hexadecimal (decimal in parentheses).
+————————+————————+——————————————+———————————————————+
|Hz at A4| Cents | RPN #1 | Sys.Ex. 40 00 00 |
+————————+————————+——————————————+———————————————————+
| 445.0 | +19.56 | 4C 43 (+1603)| 00 04 0C 04 (+196)|
| 444.0 | +15.67 | 4A 03 (+1283)| 00 04 09 0D (+157)|
| 443.0 | +11.76 | 47 44 (+964) | 00 04 07 06 (+118)|
| 442.0 | + 7.85 | 45 03 (+643) | 00 04 04 0F (+79) |
| 441.0 | + 3.93 | 42 42 (+322) | 00 04 02 07 (+39) |
| 440.0 | 0 | 40 00 (0) | 00 04 00 00 (0) |
| 439.0 | — 3.94 | 3D 3D (—323) | 00 03 0D 09 (—39) |
| 438.0 | — 7.89 | 3A 7A (—646) | 00 03 0B 01 (—79) |
+————————+————————+——————————————+———————————————————+
[Example] Setting the tuning of MIDI channel 3 to A4 = 442.0 Hz
Send RPN#1 to MIDI channel 3. From the above table, the value is 45 03H.
B2 64 01 MIDI ch.3, lower byte of RPN parameter number: 01H
(B2) 65 00 (MIDI ch.3) upper byte of RPN parameter number: 00H
(B2) 06 45 (MIDI ch.3) upper byte of parameter value: 45H
(B2) 26 03 (MIDI ch.3) lower byte of parameter value: 03H
(B2) 64 7F (MIDI ch.3) lower byte of RPN parameter number: 7FH
(B2) 65 7F (MIDI ch.3) upper byte of RPN parameter number: 7FH
●The Scale Tune Feature (address: 40 1x 40)
The scale Tune feature allows you to finely adjust the individual pitch of the notes from C
through B. Though the settings are made while working with one octave, the fine
adjustments will affect all octaves. By making the appropriate Scale Tune settings, you can
obtain a complete variety of tuning methods other than equal temperament. As examples,
three possible types of scale setting are explained below.
❍Equal Temperament
This method of tuning divides the octave into 12 equal parts. It is currently the most widely
used form of tuning, especially in occidental music. On the E-09, the default settings for the
Scale Tune feature produce equal temperament.
❍Just Temperament (Tonic of C)
The principal triads resound much more beautifully than with equal temperament, but this
benefit can only be obtained in one key. If transposed, the chords tend to become
ambiguous. The example given involves settings for a key in which C is the keynote.
❍Arabic Scale
By altering the setting for Scale Tune, you can obtain a variety of other tunings suited for
ethnic music. For example, the settings introduced below will set the unit to use the Arabic
Scale.
Example Settings
Note Name Equal Temperament Just Temperament (Keytone C) Arabic Scale
C0 0 - 6
C# 0 - 8 +45
D 0 +4 -2
D# 0 +16 -12
E 0 -14 -51
F 0 -2 -8
F# 0 -10 +43
G 0 +2 -4
G# 0 +14 +47
Note Name Equal Temperament Just Temperament (Keytone C) Arabic Scale
A 0 -16 0
A# 0 +14 -10
B 0 -12 -49
The values in the table are given in cents. Refer to the explanation of Scale Tuning on page
15 to convert these values to hexadecimal, and transmit them as Exclusive data.
For example, to set the tune (C-B) of the Part1 Arabic Scale, send the following data:
F0 41 10 42 12 40 11 40 3A 6D 3E 34 0D 38 6B 3C 6F 40 36 0F 76 F7