MIDI SPECIFICATION
MIDI |
Shape |
MIDI |
Shape |
Value |
Name |
Value |
Name |
24 |
Cir1.6R |
43 |
Chaos50 |
25 |
Cir1.4R |
44 |
Chaos66 |
26 |
SlwCrv1 |
45 |
Chaos75 |
27 |
SlwCrv2 |
46 |
Chaos95 |
28 |
DelayDC |
47 |
Chaos99 |
29 |
DCdelay |
48 |
LinShfl |
30 |
Curve2X |
49 |
LnShfl2 |
31 |
Curv2XB |
50 |
RandomA |
32 |
Curv2XC |
51 |
RandomB |
33 |
ZizZag1 |
52 |
RandomC |
34 |
ZizZag2 |
53 |
RandomD |
35 |
ZizZag3 |
54 |
RandomE |
36 |
Chaos03 |
55 |
RandomF |
37 |
Chaos06 |
56 |
RandomG |
38 |
Chaos12 |
57 |
RandomH |
39 |
Chaos16 |
58 |
RandomI |
40 |
Chaos25 |
59 |
RandomJ |
41 |
Chaos33 |
60 |
RandomK |
42 |
Chaos37 |
61 |
RandomL |
|
|
62 |
RandomZ |
• Function Generator Conditions
The function generator condition values are shared between preset funcgens and hyper funcgens, though some values are excluded in the hyper func gen. The chart shows the numbers and the availability.
MIDI |
Description |
Availability |
Value |
|
|
0 |
Never |
Preset, Hyperpreset |
1 |
AlwaysEnd |
Preset, Hyperpreset |
2 |
NoteOnEnd |
Preset, Hyperpreset |
3 |
NoteOnImm |
Preset, Hyperpreset |
4 |
NoteOffEnd |
Preset, Hyperpreset |
5 |
NoteOffImm |
Preset, Hyperpreset |
6 |
LFO1End |
Preset |
7 |
LFO2End |
Preset |
8 |
Footswitch1End |
Preset, Hyperpreset |
9 |
Footswitch1Imm |
Preset, Hyperpreset |
Chapter 11: Reference Section |
247 |
|
|
MIDI SPECIFICATION
MIDI |
Description |
Availability |
Value |
|
|
10 |
Footswitch2End |
Preset, Hyperpreset |
11 |
Footswitch2Imm |
Preset, Hyperpreset |
12 |
Footswitch3End |
Preset, Hyperpreset |
13 |
Footswitch3Imm |
Preset, Hyperpreset |
14 |
VelocityEnd |
Preset |
15 |
KeyEnd |
Preset |
• Function Generator Levels
The funcgen level parm value is comprised of two bitfields.
Funcgen Level = (levelType << 8) + levelValue
bits 8-13 = level type, 0-3
bits 0-7 = level value, +-127
The level types are defined as follows:
0absolute level
1delta level
2random absolute level
3random delta level
• Filter Types
Use the FILTER LIST command to get a list of the currently available filter names, ids and transform number. the filter type number sent via sysex are unique ids. (they are not the index into the screens) The transform number is used to determine the active parms for that filter. The number of parms active for any filter is determined by the number of frames in the filter.
Number of |
Active |
Frames |
Parms |
2 |
Morph |
4 |
Morph, Frequency Track |
6 |
Morph, Frequency Track, Transform 2 |
8 |
Morph, Frequency Track, Transform 2 |
248 Morpheus Operation Manual
MIDI SPECIFICATION
Transform Filter Type
02 frame filter
14 frame “square” filter
26 frame “phantom cube” filter
38 frame “cube” filter
4unused
54 frame “square” filter, gain reduced
• Effect Types
Use the EFFECT LIST command to get a list of the currently available EFFECTS and their IDs. The effect type number sent via SysEx are unique IDs. (they are not the index into the screens). Note that the A and B effect IDs do not overlap. e.g. the A effect StereoFlange does not have the same ID as the B effect StereoFlange.
• Parameter Numbers
The following parameter numbers are in decimal.
Parm |
Parm |
Range |
Number |
Description |
|
0-128 |
Proteus Preset Parms |
|
256 |
Basic Channel |
0-15 |
257 |
Channel Volume |
0-127 |
258 |
Channel Pan |
± 7, -8 = P |
259 |
Current Program |
0-MAXPROGRAM |
260 |
Master Tune |
± 64 Semitones |
261 |
Master X-pose |
± 12 Midi Keys (semitones) |
262 |
Global Bend |
0-12 ± Semitones |
263 |
Global Velcurve |
0-8, 0 = Off |
264 |
Midi Mode |
0-3, Omni, Poly, Multi, Mono |
265 |
Unused |
|
266 |
Control A |
0-31 |
267 |
Control B |
0-31 |
268 |
Control C |
0-31 |
269 |
Control D |
0-31 |
270 |
Footswitch 1 |
64-79 |
271 |
Footswitch 2 |
64-79 |
272 |
Footswitch 3 |
64-79 |
273 |
Midi Modechange Enable0-1, Disabled, Enabled |
Chapter 11: Reference Section |
249 |
|
|
MIDI SPECIFICATION
Parm |
Parm |
Range |
Number |
Description |
|
274 |
SysEx Device ID |
0-15 |
... |
Unused |
|
320 |
Current Midimap |
0-MAXMAP |
... |
Unused |
|
323 |
Auto Select |
0-1, Off, On |
324 |
Packet Delay |
0-999 (approx. 600 μSecs/unit) |
325 |
Proteus SysEx |
0-1, Off, On |
326 |
Compare Mode |
0-1, Off, On |
.. |
Unused |
|
2048-2407 |
Midimap Vers. 1 Parms |
See MIDIMAP DATA |
8192-8469 |
Preset Vers. 1 Parms |
See PRESET DATA |
8704-8940 |
Hyper Vers. 1 Parms |
See HYPERPRESET DATA |
• Instrument Numbers
Use the INSTRUMENT LIST commands to get a list of the IDs and names as they appear in the box. Instrument numbers are comprised of two bitfields. (romset<<8) + index.
bits 8-13 = romset number.
bits 0-7 is an index into the romset.
The Morpheus romset is 7. (Therefore instrument numbers start at
1792).
• Program Numbers
The mapping of program numbers for preset changes and midimap program number editing is as follows:
MIDI |
Program |
Program |
Bank |
Numbers |
Type |
0 |
0-127 |
RAM Presets |
1 |
128-255 |
ROM Presets |
2 |
256-383 |
RAM Hypers |
3 |
383-511 |
Card Presets |
4 |
512-639 |
Card Hypers |
250 Morpheus Operation Manual
SYSEX TUTORIAL
• 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.
data bits data bits
|
|
|
|
|
{ {
|
00000000 |
00000000 |
|
|
|
|
|
|
|
Status |
Status |
Bit |
|
Bit |
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 (gives you the unsigned raw value)
if raw Value ³ 8192 |
(8192 = 2^13) |
then signed Value = raw value - 16384 |
(16384 = 2^14) |
Example: To find the “nibble-ized” Hex value of -127:
1)-127 + 16384 = 16257
2)16257 ¸ 128 = 127 r-1
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:
1)257 ¸ 128 = 2 r-1
2)2 in Hex = 02 = msb
3)1 in Hex = 01 = lsb
4)Parameter number would be transmitted as 01 02
Chapter 11: Reference Section |
251 |
|
|