Roland TD-6 owner manual 146, Examples of actual Midi message, Example of an Exclusive message

Models: TD-6

1 160
Download 160 pages 5.73 Kb
Page 146
Image 146

MIDI Implementation

Examples of actual MIDI message

 

Example of an Exclusive message

 

 

 

 

 

<Example1> 92 3E 5F

 

 

 

and calculating a Checksum

 

 

 

9n is the Note-on status, and n is the MIDI channel number. Since 2H = 2, 3EH = 62,

Roland Exclusive messages (RQ1, DT1) are transmitted with a checksum at the end

and 5FH = 95, this is a Note-on message with MIDI CH = 3, note number 62 (note

(before F7) to make sure that the message was correctly received. The value of the

name is D4), and velocity 95.

 

checksum is determined by the address and data (or size) of the transmitted

<Example2> C9 20

 

exclusive message.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CnH is the Program Change status, and n is the MIDI channel number. Since 9H =

How to calculate the checksum

 

 

 

 

9 and 20H = 32, this is a Program Change message with MIDI CH = 10, program

(hexadecimal numbers are indicated by "H")

 

 

 

 

number 33 (Drum Kit No.33).

 

The checksum is a value derived by adding the address, size and checksum itself

<Example3> E3 00 28

 

and inverting the lower 7 bits.

 

 

 

 

 

Heres an example of how the checksum is calculated. We will assume that in the

EnH is the Pitch Bend Change status, and n is the MIDI channel number. The 2nd

exclusive message we are transmitting, the address is aa bb cc ddH and the data or

byte (00H=0) is the LSB and the 3rd byte (28H=40) is the MSB, but Pitch Bend Value

size is ee ff gg hhH.

 

 

 

 

 

 

is a signed number in which 40 00H ( = 64 x 128 + 0 = 8192) is 0, so this Pitch Bend

 

 

 

 

 

 

aa + bb + cc + dd + ee + ff + gg + hh = sum

 

 

 

 

Value is

 

 

 

 

 

 

 

 

sum / 128 = quotient ... remainder

 

 

 

 

28 00H - 40 00H = 40 x 128 + 0 - (64 x 128 + 0) = 5120 - 8192 = -3072

 

 

 

 

 

 

128 - remainder = checksum

 

 

 

 

 

 

 

 

 

 

 

 

 

<Example4> B3 64 00 65 00 06 0C 26 00 64 7F 65 7F

 

(However, the checksum will be 0 if the remainder is 0.)

 

 

BnH is the Control Change status, and n is the MIDI channel number. For Control

<Example1> Setting pan of snare drum (Trigger 2) in drum kit 1 to

Changes, the 2nd byte is the control number, and the 3rd byte is the value. In a case

 

 

 

 

 

"ALTERNATE".

 

 

 

 

in which two or more messages consecutive messages have the same status, MIDI

 

 

 

 

 

 

 

 

 

According to the "Parameter address map", the drum kit No.1 has an address of 01

has a provision called "running status" which allows the status byte of the second

00 00 00H, drum kit pad parameter of Trigger 2 has a offset address of 03 00H and

and following messages to be omitted. Thus, the above messages have the

 

 

pan has a offset address of 26H. Thus,

 

 

 

 

following meaning.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B3 64 00

MIDI ch.4, lower byte of RPN parameter number:

00H

 

 

01

00 00

00

 

 

 

 

 

 

 

 

 

 

 

03

00

 

 

 

 

 

 

 

(B3) 65 00

(MIDI ch.4) upper byte of RPN parameter number:

00H

 

 

 

 

 

 

 

 

 

 

 

+)

 

 

 

26

 

 

 

 

 

 

 

(B3) 06 0C

(MIDI ch.4) upper byte of parameter value:

0CH

 

 

01

00 03

26

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(B3) 26 00

(MIDI ch.4) lower byte of parameter value:

00H

and "ALTERNATE" is a value of 20H,

 

 

 

 

(B3) 64 7F

(MIDI ch.4) lower byte of RPN parameter number:

7FH

F0

41

10

00 3F

12

01 00 03 26

20

??

F7

 

(B3) 65 7F

(MIDI ch.4) upper byte of RPN parameter number:

7FH

 

(1)

(2)

(3)

(4)

(5)

address

data checksum

(6)

 

 

 

 

 

In other words, the above messages specify a value of 0C 00H for RPN parameter

(1) Exclusive status, (2) ID number (Roland), (3) Device ID (17)

 

 

number 00 00H on MIDI channel 4, and then set the RPN parameter number to 7F

(4) Model ID (TD-6), (5) Command ID (DT1), (6) EOX

 

 

 

7FH.

 

 

Next we calculate the checksum.

 

 

 

 

 

 

 

 

 

 

 

RPN parameter number 00 00H is Pitch Bend Sensitivity, and the MSB of the value

01H + 00H + 03H + 26H + 20H = 1 + 0 + 3 + 38 + 32 = 74 (sum)

 

 

indicates semitone units, so a value of 0CH = 12 sets the maximum pitch bend

 

 

74 (sum)/ 128 = 0 (quotient) ... 74 (remainder)

 

 

 

range to +- 12 semitones (1 octave). (On GS sound sources the LSB of Pitch Bend

 

 

 

checksum = 128 - 74 (remainder) = 54 = 36H

 

 

 

 

Sensitivity is ignored, but the LSB should be transmitted anyway (with a value of 0)

 

 

 

 

This means that F0 41 10 00 3F 12 01 00 03 26 20 36 F7 is the message we transmit.

so that operation will be correct on any device.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Once the parameter number has been specified for RPN or NRPN, all Data Entry

<Example2> Requesting transmission of master volume of drum

 

 

 

 

 

 

 

 

 

 

 

 

 

messages transmitted on that same channel will be valid, so after the desired value

 

 

 

 

 

kit 1.

 

 

 

 

 

has been transmitted, it is a good idea to set the parameter number to 7F 7FH to

According to the "Parameter address map",the drum kit No.1 has an address of 01

prevent accidents. This is the reason for the (B3) 64 7F (B3) 65 7F at the end.

00 00 00H, drum kit common parameter has a offset address of 00 00H

 

 

 

 

 

It is not desirable for performance data (such as Standard MIDI File data) to contain

and master volume has a offset address of 15H. Thus,

 

 

 

many events with running status as given in <Example 4>. This is because if

 

 

01

00 00

00

 

 

 

 

 

 

 

playback is halted during the song and then rewound or fast-forwarded, the

 

 

 

 

 

 

 

 

 

 

 

 

 

00 00

 

 

 

 

 

 

 

sequencer may not be able to transmit the correct status, and the sound source will

+)

 

 

 

15

 

 

 

 

 

 

 

 

 

01

00 00

15

 

 

 

 

 

 

 

then misinterpret the data. Take care to give each event its own status.

 

 

 

 

 

 

 

 

 

 

 

Since Size = 00 00 00 01H,

 

 

 

 

 

 

 

 

 

 

 

 

 

It is also necessary that the RPN or NRPN parameter number setting and the value

F0

41

10

00 3F

11

01 00 00 15

00 00 00 01

??

F7

setting be done in the proper order. On some sequencers, events occurring in the

(1)

(2)

(3)

(4)

(5)

address

size

checksum

(6)

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

(1) Exclusive status, (2) ID number (Roland), (3) Device ID (17)

 

 

time of each event (about 1 tick for TPQN =96, and about 5 ticks for TPQN =480).

(4) Model ID (TD-6), (5) Command ID (RQ1), (6) EOX

 

 

 

* TPQN : Ticks Per Quarter Note

 

Next we calculate the checksum.

 

 

 

 

 

 

 

01H + 00H + 00H + 15H + 00H + 00H +00H + 01H = 1 + 0 + 0 + 21 + 0 + 0 + 0 + 1 =

 

 

 

23 (sum)

 

 

 

 

 

 

 

 

 

 

 

 

23 (sum) / 128 = 0(quotient) ... 23 (remainder)

 

 

 

 

 

 

checksum = 128 - 23 (remainder) = 105 = 69H

 

 

 

 

 

 

This means that F0 41 10 00 3F 11 01 00 00 15 00 00 00 01 69 F7 is the message we

 

 

 

transmit.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

146

Page 146
Image 146
Roland TD-6 owner manual 146, Examples of actual Midi message, Example of an Exclusive message, Calculating a Checksum