MIDI Implementation

Examples of Actual MIDI Messages

<Example 1> 92 3E 5F

9n is the Note On status and `n' is the MIDI channel number. Since 2H = 2, 3EH = 62, and 5FH = 95, this is a Note On message of MIDI CH = 3, note number 62 (note name D4) and velocity 95.

<Example 2> CE 49

CnH is the Program Change status and `n' is the MIDI channel number. Since EH = 14, and 49H = 73, this is a Program Change message of MIDI CH = 15, Program number 74 (in the GS sound map, Flute).

<Example 3> EA 00 28

EnH is the Pitch Bend Change status and `n' is the MIDI channel number. The 2nd byte (00H=0) is the LSB of the Pitch Bend value, and the 3rd byte (28H=40) is the MSB. However since the Pitch Bend is a signed number with 0 at 40 00H (= 64 x 128 + 0 = 8192), the Pitch Bend value in this case is 28 00H - 40 00H = 40 x 128 + 0 - (64 x 128 + 0) = 5120 - 8192 = -3072

If we assume that the Pitch Bend Sensitivity is set to two semitones, the pitch will change only -200 cents for a Pitch Bend value of -8192 (00 00H). Thus, this message is specifying a Pitch Bend of -200 x (-3072) / (-8192) = -75 cents on MIDI CH = 11.

<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 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: 00H

(B3)

65

00

MIDI CH = 4, RPN parameter number MSB: 00H

(B3)

06

0C

MIDI CH = 4, parameter value MSB: 0CH

(B3)

26

00

MIDI CH = 4, parameter value LSB: 00H

(B3)

64

7F

MIDI CH = 4, RPN parameter number LSB: 7FH

(B3)

65

7F

MIDI CH = 4, RPN parameter number MSB: 7FH

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 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 (JV-1010)

(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 (JV-1010)

(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.

86

Page 86
Image 86
Roland JV-1010 owner manual Examples of Actual Midi Messages, Examples of Exclusive Messages Calculating the Checksum

JV-1010 specifications

The Roland JV-1010 is a compact and versatile synthesizer and sound module that has made a significant impact on the music production landscape since its introduction in the mid-1990s. Renowned for its extensive sound library and superior sound quality, the JV-1010 stands as a go-to device for musicians looking for a powerful yet portable instrument.

One of the standout features of the JV-1010 is its expansive sound engine, which houses 1,024 patches and 36 voices of polyphony. This allows for complex musical layers without the risk of cutting off notes. The built-in digital effects processor comes with 40 types of effects, including reverb, chorus, and flanger, enabling users to further enhance their sounds and create unique tonal textures.

The sound generation technology behind the JV-1010 is based on the JV-1080 platform, leveraging Roland's acclaimed 'SR-JV80' expansion board technology. This modular approach allows users to expand their sonic capabilities by adding additional sound banks, providing access to a wide range of genres and instruments. Notably, the synthesizer includes sounds from various musical traditions, from orchestral to electronic, making it suitable for diverse musical styles.

Another key characteristic of the JV-1010 is its user-friendly interface. It features a clear LCD screen and organized button layout, making it easy for musicians to navigate through its extensive library. Additionally, the unit supports MIDI connectivity, allowing it to seamlessly integrate with other MIDI-compatible gear, such as keyboards, drum machines, and computers. This makes the JV-1010 an excellent choice for studios and live performance settings alike.

The compact size of the JV-1010, which allows it to easily fit into a standard rack mount or travel setup, adds to its appeal, especially for mobile musicians. The lightweight design does not compromise its durability, ensuring it can withstand the rigors of frequent transport.

Overall, the Roland JV-1010 synthesizer is a powerhouse of sound engineering, providing musicians with a rich palette of tones and textures. Its robust feature set, expansion capabilities, and portability make it a timeless instrument that continues to be appreciated by both seasoned professionals and emerging artists in the music industry. Whether used for studio production, live performance, or sound design, the JV-1010 remains a reliable choice for those seeking high-quality musical tools.