Sysex Tutorial - E-Mu Ultraproteus Operation Manual

Table of Contents

Advertisement

14-BIT SIGNED 2'S COMPLEMENT NUMBERS
If the data value is negative, you must first take the 2's complement of the
number: In the case of a 14-bit number this is equivalent to adding 16384 to the
original negative value.
To fit the 7-bit MIDI protocol, numbers must be "nibble-ized".
Status Bit MUST be "0" in MIDI
data bytes.
To get the 14-bit nibble-ized value (of a positive value or a 2's
complemented negative value):
msb = value DIV 128 (divide and ignore the remainder)
lsb = value MOD 128 (divide and use only the remainder)
To go the other way (convert 14 bit signed 2's complement to a signed real
number)
raw Value = (msb*128) + lsb
raw Value ≥ 8192 (8192 = 2^13)
then signed Value = raw value - 16384
Example: To find the "nibble-ized" Hex value of -127:
1)
-127 + 16384 = 16257
16257 ÷ 128 = 127 r1
2)
3)
127 in Hex = 7F = msb
4)
1 in Hex = 01 = lsb
5)
Parameter value would be transmitted as 01 7F
Example: To find the "nibble-ized" Hex value of parameter number 257:
257 ÷ 128 = 2 r1
1)
2)
2 in Hex = 02 = msb
3)
1 in Hex = 01 = lsb
4)
Parameter number would be transmitted as 01 02
data bits
data bits
00000000 00000000
Status
Status
Bit
Bit
(gives you the unsigned raw value) if
(16384 = 2^14)
Chapter 11: Reference Section

SYSEX TUTORIAL

277

Advertisement

Table of Contents
loading

Table of Contents