Roland JD-Xi Midi Implementation Manual Download Page 15

15

7. Supplementary Material

 

9

Decimal and Hexadecimal Table 

(An “H” is appended to the end of numbers in hexadecimal notation.)

In MIDI documentation, data values and addresses/sizes of Exclusive 

messages, etc. are expressed as hexadecimal values for each 7 bits.

The following table shows how these correspond to decimal numbers.

+------+------++------+------++------+------++------+------+

|  D   |  H   ||  D   |  H   ||  D   |  H   ||  D   |  H   |

+------+------++------+------++------+------++------+------+

|    0 |  00H ||   32 |  20H ||   64 |  40H ||   96 |  60H |

|    1 |  01H ||   33 |  21H ||   65 |  41H ||   97 |  61H |

|    2 |  02H ||   34 |  22H ||   66 |  42H ||   98 |  62H |

|    3 |  03H ||   35 |  23H ||   67 |  43H ||   99 |  63H |

|    4 |  04H ||   36 |  24H ||   68 |  44H ||  100 |  64H |

|    5 |  05H ||   37 |  25H ||   69 |  45H ||  101 |  65H |

|    6 |  06H ||   38 |  26H ||   70 |  46H ||  102 |  66H |

|    7 |  07H ||   39 |  27H ||   71 |  47H ||  103 |  67H |

|    8 |  08H ||   40 |  28H ||   72 |  48H ||  104 |  68H |

|    9 |  09H ||   41 |  29H ||   73 |  49H ||  105 |  69H |

|   10 |  0AH ||   42 |  2AH ||   74 |  4AH ||  106 |  6AH |

|   11 |  0BH ||   43 |  2BH ||   75 |  4BH ||  107 |  6BH |

|   12 |  0CH ||   44 |  2CH ||   76 |  4CH ||  108 |  6CH |

|   13 |  0DH ||   45 |  2DH ||   77 |  4DH ||  109 |  6DH |

|   14 |  0EH ||   46 |  2EH ||   78 |  4EH ||  110 |  6EH |

|   15 |  0FH ||   47 |  2FH ||   79 |  4FH ||  111 |  6FH |

|   16 |  10H ||   48 |  30H ||   80 |  50H ||  112 |  70H |

|   17 |  11H ||   49 |  31H ||   81 |  51H ||  113 |  71H |

|   18 |  12H ||   50 |  32H ||   82 |  52H ||  114 |  72H |

|   19 |  13H ||   51 |  33H ||   83 |  53H ||  115 |  73H |

|   20 |  14H ||   52 |  34H ||   84 |  54H ||  116 |  74H |

|   21 |  15H ||   53 |  35H ||   85 |  55H ||  117 |  75H |

|   22 |  16H ||   54 |  36H ||   86 |  56H ||  118 |  76H |

|   23 |  17H ||   55 |  37H ||   87 |  57H ||  119 |  77H |

|   24 |  18H ||   56 |  38H ||   88 |  58H ||  120 |  78H |

|   25 |  19H ||   57 |  39H ||   89 |  59H ||  121 |  79H |

|   26 |  1AH ||   58 |  3AH ||   90 |  5AH ||  122 |  7AH |

|   27 |  1BH ||   59 |  3BH ||   91 |  5BH ||  123 |  7BH |

|   28 |  1CH ||   60 |  3CH ||   92 |  5CH ||  124 |  7CH |

|   29 |  1DH ||   61 |  3DH ||   93 |  5DH ||  125 |  7DH |

|   30 |  1EH ||   62 |  3EH ||   94 |  5EH ||  126 |  7EH |

|   31 |  1FH ||   63 |  3FH ||   95 |  5FH ||  127 |  7FH |

+------+------++------+------++------+------++------+------+

D: decimal

H: hexadecimal

 

*

Decimal values such as MIDI channel, bank select, and program change 

are listed as one greater than the values given in the above table.

 

*

A 7-bit byte can express data in the range of 128 steps. For data 

where greater precision is required, we must use two or more bytes. 

For example, two hexadecimal numbers aa bbH expressing two 7-bit 

bytes would indicate a value of aa x 128+bb.

 

*

In the case of values which have a +/- sign, 00H = -64, 40H = +/-0, 

and 7FH = +63, so that the decimal expression would be 64 less than 

the value given in the above chart. In the case of two types, 00 

00H = -8192, 40 00H = +/-0, and 7F 7FH = +8191. For example, if aa 

bbH were expressed as decimal, this would be aa bbH - 40 00H = aa x 

128+bb - 64 x 128.

 

*

Data marked “Use nibbled data” is expressed in hexadecimal in 4-bit 

units. A value expressed as a 2-byte nibble 0a 0bH has the value of 

a x 16+b.

<Example1> What is the decimal expression of 5AH?

From the preceding table, 5AH = 90

<Example2> What is the decimal expression of the value 12 34H given as 

hexadecimal for each 7 bits?

From the preceding table, since 12H = 18 and 34H = 52

18 x 128+52 = 2356

<Example3> What is the decimal expression of the nibbled value 0A 03 

09 0D?

From the preceding table, since 0AH = 10, 03H = 3, 09H = 9, 0DH = 13

((10 x 16+3) x 16+9) x 16+13 = 41885

<Example4> What is the nibbled expression of the decimal value 1258?

16 ) 1258

16 )   78 ...10

16 )    4 ...14

        0 ... 4

Since from the preceding table, 0 = 00H, 4 = 04H, 14 = 0EH, 10 = 0AH, 

the result is: 00 04 0E 0AH.

 

9

Examples of Actual MIDI Messages

<Example1> 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 with MIDI CH = 3, 

note number 62 (note name is D4), and velocity 95.

<Example2> 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 with MIDI 

CH = 15, program number 74.

<Example3> 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 and the 3rd byte (28H = 40) is the 

MSB, but Pitch Bend Value is a signed number in which 40 00H (= 64 x 

12+80 = 8192) is 0, so this Pitch Bend Value is

28 00H - 40 00H = 40 x 12+80 - (64 x 12+80) = 5120 - 8192 = -3072

If the Pitch Bend Sensitivity is set to 2 semitones, -8192 (00 00H) 

will cause the pitch to change -200 cents, so in this case -200 x (-3072) 

/ (-8192) = -75 cents of Pitch Bend is being applied to MIDI channel 

11.

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

For Control Changes, the 2nd byte is the control number, and the 3rd 

byte is the value. In a case in which two or more messages consecutive 

messages have the same status, MIDI has a provision called “running 

status” which allows the status byte of the second and following 

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

meaning.

 B3  64 00 MIDI ch.4, lower byte of RPN parameter number:  00H

(B3)  65 00 (MIDI ch.4) upper byte of RPN parameter number: 00H

(B3)  06 0C (MIDI ch.4) upper byte of parameter value: 

0CH

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

00H

(B3)  64 7F (MIDI ch.4) lower byte of RPN parameter number: 7FH

(B3)  65 7F (MIDI ch.4) upper byte of RPN parameter number: 7FH

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

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

parameter number to 7F 7FH.

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

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

maximum pitch bend range to +/-12 semitones (1 octave). (On this sound 

generators the LSB of Pitch Bend Sensitivity is ignored, 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

Summary of Contents for JD-Xi

Page 1: ...as follows BANK SELECT PROGRAM GROUP NUMBER MSB LSB NUMBER 095 064 001 128 SuperNATURAL Synth Tone 001 128 095 065 001 128 SuperNATURAL Synth Tone 129 256 The Analog Synth Tones corresponding to each...

Page 2: ...PROG OFFSET will change 6 6 Vibrato Depth Controller number 77 Status 2nd byte 3rd byte BnH 4DH vvH n MIDI channel number 0H FH ch 1 16 vv Vibrato Depth Value relative change 00H 40H 7FH 64 0 63 The...

Page 3: ...DnH vvH n MIDI channel number 0H FH ch 1 16 vv Channel Pressure 00H 7FH 0 127 Not received when the Receive Channel Press parameter SysEx is OFF 7 7 Pitch Bend Change Status 2nd byte 3rd byte EnH llH...

Page 4: ...sage Status Data byte Status F0H 7EH dev 06H 01H F7H Byte Explanation F0H Exclusive status 7EH ID number Universal Non realtime Message dev Device ID dev 10H 1FH 7FH 06H Sub ID 1 General Information 0...

Page 5: ...on the type of data and data will be transmitted from the specified starting address and size Refer to the address and size given in Parameter Address Map p 8 Data larger than 256 bytes will be divide...

Page 6: ...00H 00H Software revision level F7H EOX End of Exclusive 7 7 Data Transmission 6 6 Data set 1 DT1 Status Data byte Status F0H 41H dev 00H 00H 00H 0EH 12H aaH bbH F7H ccH ddH eeH ffH sum Byte Explanati...

Page 7: ...er 126 Status 2nd byte 3rd byte BnH 7EH mmH n MIDI channel number 0H FH ch 1 16 mm mono number 00H 10H 0 16 The same processing will be done as when an All Note Off message is received 7 7 Poly Contro...

Page 8: ...00 00 Temporary Tone Digital Synth Part 2 19 40 00 00 Temporary Tone Analog Synth Part 19 60 00 00 Temporary Tone Drums Part System Offset Address Description 00 00 00 System Common 00 03 00 System Co...

Page 9: ...F 0aaa aaaa reserve 00 10 0aaa aaaa Program Level 0 127 00 11 0000 aaaa 0000 bbbb 0000 cccc 0000 dddd Program Tempo 500 30000 5 00 300 00 00 15 0000 aaaa reserve 00 16 0000 aaaa Vocal Effect 0 2 OFF V...

Page 10: ...aa Part Mono Poly MONO ON POLY ON 0 2 MONO POLY TONE 00 0E 0000 00aa Part Legato Switch CC 68 0 2 OFF ON TONE 00 0F 000a aaaa Part Pitch Bend Range RPN 0 0 25 0 24 TONE 00 10 0000 00aa Part Portamento...

Page 11: ...aaa Tone Name 9 32 127 32 127 ASCII 00 09 0aaa aaaa Tone Name 10 32 127 32 127 ASCII 00 0A 0aaa aaaa Tone Name 11 32 127 32 127 ASCII 00 0B 0aaa aaaa Tone Name 12 32 127 32 127 ASCII 00 0C 0aaa aaaa T...

Page 12: ...nth Tone Offset Address Description 00 00 0aaa aaaa Tone Name 1 32 127 32 127 ASCII 00 01 0aaa aaaa Tone Name 2 32 127 32 127 ASCII 00 02 0aaa aaaa Tone Name 3 32 127 32 127 ASCII 00 03 0aaa aaaa Tone...

Page 13: ...000 000a reserve 00 20 0000 00aa WMT Velocity Control 0 2 OFF ON RANDOM 00 21 0000 000a WMT1 Wave Switch 0 1 OFF ON 00 22 0000 00aa WMT1 Wave Group Type 0 00 23 0000 aaaa 0000 bbbb 0000 cccc 0000 dddd...

Page 14: ...3 63 01 22 0000 0aaa TVF Filter Type 0 6 OFF LPF BPF HPF PKG LPF2 LPF3 01 23 0aaa aaaa TVF Cutoff Frequency 0 127 01 24 0000 0aaa TVF Cutoff Velocity Curve 0 7 FIXED 1 7 01 25 0aaa aaaa TVF Cutoff Vel...

Page 15: ...Example2 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 with MIDI CH 15 program number 74 Example3 EA 00 28 EnH is the...

Page 16: ...0 00 0E 12 18 00 02 03 64 F7 1 2 3 4 5 address data checksum 6 1 Exclusive Status 2 ID Roland 3 Device ID 17 4 Model ID JD Xi 5 Command ID DT1 6 End of Exclusive Then calculate the checksum 18H 00H 02...

Page 17: ...te rate Vibrate depth Vibrate delay 4 NRPN LSB MSB 4 RPN LSB MSB 4 Program Change True Number o 1 o 1 0 127 Program No 1 128 System Exclusive o 3 o System Common Song Position Song Select Tune Request...

Page 18: ...mmands o o o 1 o 1 Aux Messages All Sound Off Reset All Controllers Local On Off All Notes Off Omni Mode Off Omni Mode On Mono Mode On Poly Mode On Active Sensing System Reset o o x x o o o o o x o 2...

Reviews: