EasyManuals Logo

Roland SH-201 Midi Implementation

Roland SH-201
9 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #7 background imageLoading...
Page #7 background image
7
SH-201 MIDI Implementation
4. Supplementary Material
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.
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 19
CnH is the Program Change status, and n is the MIDI channel number. Since EH = 14 and
19H = 25, this is a Program Change message with MIDI CH = 15, program number 26.
<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.
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 cc ddH and the data or size is ee ffH.
aa + bb + cc + dd + ee + ff = sum
sum ÷ 128 = quotient ... remainder
128 - remainder = checksum
<Example1> Setting REVERB SIZE of PATCH to 1 (DT1)
According to the “Parameter Address Map” (p. 4), the start address of Temporary Patch is
10 00 00 00H, the offset address of PATCH REVERB at PATCH is 04 00H, and the address of
REVERB SIZE is 00 02H. Therefore the address of REVERB SIZE of PATCH REVERB is;
10 00 00 00H
04 00H
+) 00 02H
10 00 04 02H
REVERB SIZE 1 has the value of 01H.
So the system exclusive message should be sent is;
F0 41 10 00 00 16 12 10 00 04 02 00 ?? F7
(1) (2) (3) (4) (5) address data checksum (6)
(1) Exclusive Status (2) ID (Roland) (3) Device ID (17)
(4) Model ID (SH-201) (5) Command ID (DT1) (6) End of Exclusive
Then calculate the checksum.
10H + 00H + 04H + 02H + 00H = 16 + 0 + 4 + 2 + 0 = 22 (sum)
22 (sum) ÷ 128 = 0 (quotient) ... 22 (remainder)
checksum = 128 - 22 (remainder) = 106 = 6AH
This means that F0 41 10 00 00 16 12 10 00 04 02 00 6A F7 is the message should be sent.

Other manuals for Roland SH-201

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Roland SH-201 and is the answer not in the manual?

Roland SH-201 Specifications

General IconGeneral
Synthesis TypeVirtual Analog
Oscillators2 per voice
WaveformsSaw, Square, Pulse, Triangle, Sine, Noise
ArpeggiatorYes
Keyboard49 keys
MIDIIn, Out
USBYes
Release Year2006
EffectsReverb, Delay, Chorus
LFO1
Audio OutputsStereo (L/MONO, R)
Headphones1/4" stereo phone jack
FilterResonant Low-Pass, High-Pass, Band-Pass
Weight5.0 kg

Related product manuals