14-bit Signed 2's Complement Numbers ...................................................77
iv E-MU Systems
•
•
•
•
•
•
•
•
MIDI SysEx Specification for
the Proteus Family Instruments
Proteus 2000, Audity 2000, Proteus 2500, XL-7,
MP-7, PX-7, PK-6, MK-6, XK-6, Vintage Keys,
Vintage Pro, Halo
Focus
The main focus is to provide an easy to use, easy to implement protocol for
the specific function of editing Proteus family parameters from a remote
system. Typically this would be a computer, with the potential for a large
graphical interface, superior to the standard Proteus or Audity front panel
display. In this document, the name Proteus, will refer to any instrument in
the Proteus family.
The protocol consists of a data format usable over MIDI, as well as any
other transfer media. The data format is simple, flexible, and easy to
expand while maintaining backwards compatibility.
There are a few basic necessary functions that make up a Remote Preset
Editor/Librarian package.
the ability to select the Preset to edit.
the ability to select the Layer to edit.
the ability to send a new individual parameter value to Proteus.
the ability to request from Proteus the value of an individual parameter.
the ability to send a dump of parameters to Proteus.
the ability to request a dump of parameters from Proteus.
the ability to name a Preset.
the ability to request the name of a Preset.
Note: Please refer to the official MMA MIDI specification for specific information about MIDI protocol and generic commands.
Proteus Family MIDI SysEx Specification 1
2
MIDI Standard Universal System Exclusive Messages
Device Inquiry,
MIDI Standard Universal System
Exclusive Messages
Device Inquiry
Proteus supports the MIDI Standard Non-Real Time System Exclusive
General Information Device Inquiry messages
(sub-ID#1 = 06).
Format:{F0h, 7Eh, <device ID>, 06h, 01h, F7}
<Header>{F0h,7Eh,<device ID>} = Universal System Exclusive Non-real
<Header> {F0h, 7Eh, <device ID>} = Universal System Exclusive Non-real
time header.
<device ID> = ID the hunk of metal and plastic is set to.
0 - 126 are Unique ID’s,
127 is an All Broadcast ID.
06h= General Information (sub-ID#1)
02h= Identity Reply (sub-ID#2)
mm= 18h (Manufacturers System Exclusive id
code)
ff ff= 04h, 04h (Device family code, 14 bits, LSB
first)
dd dd (Audity)= 02h, 00h (Device family member code, 14
bits, LSB first)
dd dd (Proteus) = 03h, 00h (Device family member code, 14
bits, LSB first)
ss ss ss ss= Software revision level, 4 ASCII characters.
Example: 2 . 5 0 = version 2.50
F7h = EOX
E-MU Systems
MIDI Standard Universal System Exclusive Messages
Bulk Tuning Dump Request,
Bulk Tuning
Dump Request
Bulk Tuning
Dump
Message
Format: {F0h, 7Eh, <device ID>, 08h, 00h, tt, F7}
{F0h, 7Eh,<device ID>} = Universal System Exclusive Non-real time
header.
08h= MIDI Tuning Standard (sub-ID#1)
00h= bulk dump request = 00h (sub-ID#2)
tt= tuning program number
F7h= EOX
The receiving unit shall respond by sending the bulk tuning dump message
described in the following section for the tuning number addressed.
A bulk tuning dump comprises frequency data in a 3-byte format (see MMA
MIDI Spec) for all 128 MIDI key numbers, in order from note 0 (earliest
sent) to note 127 (latest sent), enclosed by a system exclusive header and
tail. This message is sent by the receiving instrument in response to a
tuning dump request.
{F0h, 7Eh,<device ID>} = Universal System Exclusive Non-real time
header.
08h= MIDI Tuning Standard (sub-ID#1)
01= bulk dump reply = 01h (sub-ID#2)
tt= tuning program number
<tuning name>= 16 ASCII characters
[xx yy zz= frequency data for one note (repeated 128
times)
chksum = checksum (XOR of 7E, <device ID>, nn, tt
<388bytes>)
F7h= EOX
Proteus Family MIDI SysEx Specification 3
4
MIDI Standard Universal System Exclusive Messages
Single Note Tuning Change,
Single Note
Tuning
Change
The single note tuning change message (Exclusive Real-Time sub-ID#1 =
08h) permits on-the-fly adjustments to any tuning stored in Proteus. These
changes take effect immediately and occur without any audible artifacts if
notes are sounding when the message is received.
{F0h, 7Eh,<device ID>} = Universal System Exclusive Non-real time
header.
08h= MIDI Tuning Standard (sub-ID#1)
02h= note change = 02h (sub-ID#2)
tt= tuning program number (0-127)
ll= number of changes (1 change = 1 set of
[kk xx yy zz])
[kk= MIDI key number
xx yy zz]= frequency data for that key (repeated ‘ll’
number of times)
F7h= EOX
This message permits muliple changes to be embedded in one message for
the purpose of maximizing bandwidth. The number of changes following is
indicated by the byte ‘ll’: the total length of the message equals 8 + (11 x 4)
bytes.
Master
Volume
E-MU Systems
The master volume control on Proteus actually controls a digital attenuator
and thus can be controlled via MIDI. A MIDI Master Volume control could
be used to simultaneously fade out all channels in the module at once, for
example.
Because the Master Volume message addresses the the entire "device"
instead of MIDI "channels", it has been defined as a Universal Real Time
System Exclusive message (sub ID#1 = 04h).
This command is used to change the value of one or more parameters. See
the "Parameters" section for a list of of Parameter ID’s and descriptions.
Please try to avoid sending messages with more than 244 Data Bytes, or 41
Parameter Edits.
This command is used to request the current value of one or more parameters. See the "Parameters" section for a list of of Parameter ID’s and descriptions. The response is a complete Parameter Value Edit SYSEX message for
each parameter. Please try to avoid sending messages with more than 246
Data Bytes, or 123 Parameter IDs.
System Exclusive Messages
Parameter Edit/Request Commands, Parameter Min/Max /Default Value
This command conveys the parameter’s minimum, maximum and default
value. It is sent in response to command 04. Sending this command to an
Audity or Proteus has no effect.
This command causes a generic name command to be sent for the
requested object.
Proteus Family MIDI SysEx Specification 9
System Exclusive Messages
Dump Commands, Proteus Preset Dump Format
Dump
Commands
Proteus Preset Dump
Format
The transfer of large messages is like the MIDI Sample Dump Standard. In
this standard, large messages are broken up into smaller packets. “ClosedLoop” style dumps require the receiver to acknowledge each packet using
handshake messages. “Open-Loop” style dumps do not require acknowledgement. Custom handshake messages are used because the number of
packets in a dump may exceed a 7-bit packet number, the limit of the
Generic Handshaking Messages as defined in the MIDI specification. See
the section, “Dump Handshaking Messages” on page 31 for details.
When a Dump is requested or initiated, the first element of the dump sent
is the Dump Header. This header contains information on the type of
dump, preset number of the dump, how many bytes are included in the
data, and the number of parameters in each section, which may depend on
the version of Proteus the dump may have come from. As parameters are
added to newer versions of Proteus, the dump format can expand. Older
Proteus versions ignore any expanded dump parameters.
What follows the header message are 255-byte messages that each contain
up to 244 bytes of actual data. The last message may contain LESS than 255
bytes, depending on how much data is left. Generic handshaking messages
will be used to negotiate the transfer. After all the data messages have been
sent, an End Of File message will be sent, closing the transfer.
Preset Dump SubCommands
00h(reserved)
01hPreset Dump Header Closed Loop
02hPreset Dump Data Message Closed Loop
03hPreset Dump Header Open Loop
04hPreset Dump Data Message Open Loop
10hPreset Common Dump Data Message
11hPreset Common General Dump Data Message
12hPreset Common Arp Dump Data Message
13hPreset Common Effects Dump Data Message (Master or
Preset)
14hPreset Common Links Dump Data Message
20hPreset Layer Dump Data Message
21hPreset Layer Common Dump Data Message
22hPreset Layer Filter Dump Data Message
23hPreset Layer LFO Dump Data Message
24hPreset Layer Envelopes Dump Data Message
25hPreset Layer PatchCords Dump Data Message
10 E-MU Systems
Examples of the Dump Header, and the different types of data within the
Data messages, follow.
System Exclusive Messages
Dump Commands, Program Change/Preset Map Dump
Program Change/
Preset Map Dump
The Program Change/Preset table maps 128 different Presets to any of 128
Program Changes. The Dump assumes a Program Change order of 0 to 127,
and lists only the Mapped Preset Numbers in that order, and then repeats
the Preset ROM ID’s in that order:
Example:
Program Change 0: Preset 112
Program Change 1: Preset 043
Program Change 2: Preset 001
Program Change 127: Preset 058
Preset Numbers are 2 MIDI Bytes, LSB first, for a total of 128*2 or 256 Data
Bytes. Preset ROM ID Numbers are 2 MIDI Bytes, LSB first, for a total of
128*2 or 256 Data Bytes.
EXAMPLE:> {F0h, 18h, 0Fh, dd, 55h, 16h, <256 Data Bytes>, <256 Data
Bytes>, F7h}
Each Screen in the Proteus can have up to 8 "Custom" characters that are
not a part of the ASCII character set. Each Custom character is essentially a
bitmap. The Size of the Character Bitmap on the Proteus display is 7x5.
Each Custom character is represented with 8 MIDI Bytes, corresponding to
the 8 5-bit rows of the character, top to bottom
(3 MSBits are 0). The Proteus has a default "Palette" of Custom Characters,
and this can be downloaded with the following messages. When a Screen
Dump is requested, part of that Screen Dump is a mapping of which 8
Custom characters of this Palette is being used in that screen. Numbers 0-7
within the 48 "ASCII" characters of the Screen dump can be mapped to the
Palette with that map.
<Char Palettes>=8 x Number of Custom Characters(13)=104
Bytes
F7h=EOX
LCD Custom
Character Palette
Request
(Proteus 2000 &
Audity 2000 only)
EXAMPLE:> {F0h, 18h, 0Fh, dd, 55h,1Bh, 02h, F7h}
F0h=sysex message
18h=EMU ID
0Fh=Proteus ID
dd =Device ID
55h=Special Editor designator byte
1Bh=Command::LCD Screen Dump Request
02h=LCD Character Palette Request
F7h=EOX
Proteus Family MIDI SysEx Specification 25
System Exclusive Messages
Dump Commands, Setup Dump
Setup DumpA Setup Dump contains all settings selected by the Master Menu and
settings made on the Preset Select screen, with the exception of the
program/preset map and tuning tables (these can be dumped seperately).
Only the current setup can be dumped. If other setups need to be dumped,
the “Copy Setup” command must be used first to make them “current”.
The following data is contained in the dump.
Master Common Parameters
Master Clock Tempo
Master FX Bypass
Master Transpose
Master Tune
Master Bend Range
Master Vel Curve
Master Output Format
Master Knob Quick Edit
Master Knob Deep Edit
Master Preset Edit All Layers
Master Demo Mode Enable
Master MIDI Parameters,
Master MIDI Mode
Master MIDI Mode Change
Master MIDI ID
Master MIDI A Control
Master MIDI B Control
Master MIDI C Control
Master MIDI D Control
Master MIDI E Control
Master MIDI F Control
Master MIDI G Control
Master MIDI H Control
Master MIDI FS1 Control
Master MIDI FS2 Control
Master MIDI FS3 Control
Master MIDI Tempo Ctrl Up
Master MIDI Tempo Ctrl Down,
Master MIDI Knob Out
Master MIDI Packet Delay,
26 E-MU Systems
Master MIDI I Control
Master MIDI J Control
Master MIDI K Control
Master MIDI L Control
Master Effects Parameters
Master FX A Algorithm
Master FX A Decay
Master FX A HFDamp
Master FX A>B
Master FX A Mix Main
Master FX A Mix Sub1
Master FX A Mix Sub2
Master FX B Algorithm
Master FX B Feedback
Master FX B LFO Rate
Master FX B Delay
Master FX B Mix Main
Master FX B Mix Sub1
Master FX B Mix Sub2
Master FX A Mix Sub3
Master FX B Mix Sub3
Arpeggiator
(*Independant of MIDI Channel*)
Multimode Basic Channel
Multimode FX Ctrl Channel
Multimode Tempo Ctrl Chan
(*Parameters for each of 32 MIDI channels*)
Multimode Preset
Multimode Volume
Multimode Pan
Multimode Mix Output
(reserved)
Multimode Channel Enable
(reserved)
Multimode RCV Prog Change
Multimode Preset ROM ID
System Exclusive Messages
Dump Commands, Setup Dump
Proteus Family MIDI SysEx Specification 27
System Exclusive Messages
Dump Commands, Setup Dump
The generic dump replaces the setup dump (command 1Ch) as the new
dump format sent by the command stations. The new dump format was
created to replace the setup dump due to the inablity for the setup dump to
be extended in order to add new data. The generic dump has the potential
to replace all the various dump formats but for now is only used for master
data dumps. The command stations still receive and understand the old
setup dump and will transmit one if explicitly requested to do so via sysex.
Copy Utilities (ROM->RAM, RAM->RAM)
Remote Front Panel Control Commands, Remote Control Subcommands
Remote Front
Panel Control
Commands
Remote Control
Subcommands
Remote Control Comands give you complete control over the Proteus from
a remote program. Complete front panel emulation is possible.
In order for the Proteus to respond to these commands, you must first
“Open a Session” by sending the Open Session command. When a session
is open, not only does the Proteus respond to Remote Control commands,
it generates them as well when the user presses a button or turns a knob.
This gives a front panel emulation program the ability to remain in sync
with the Proteus even when someone is pushing buttons and turning
knobs. Closing a Session turns these messages off, and disables responding
to incoming remote control messages. It is not necessary to Open and close
a session for each message, but it is generally reccommended not to open a
session unless specifically using these features as MIDI bandwidth can be
eaten up by the quantity of the generated messages.
00h (reserved)
10h Open Session
11h Close Session
20h Button Event
21h (reserved)
22h Rotary Event
23h LED State Event
Remote Control
Open Session
36 E-MU Systems
EXAMPLE:> {F0h, 18h, 0Fh, dd, 55h, 40h, 10h, F7h}
F0h=sysex message
18h=EMU ID
0Fh=Proteus ID
dd =Device ID
55h=Special Editor designator byte
40h=Command::Remote Front Panel Control
Command
10h=subCommand::Open Session subCommand
F7h=EOX
Copy Utilities (ROM->RAM, RAM->RAM)
Remote Front Panel Control Commands, Remote Control Close Session
BEATS_TRIGGER_OFFSETid = 274 (12h, 02h) min = -128, max = +127
BEATS_IGNORE_TEMPOid = 275 (13h, 02h) min = 0, max = 1
BEATS_IGNORE_CONTROLLERSid = 276 (14h, 02h) min = 0, max = 1
MASTER_RIFF_ROM_IDid = 277 (15h, 02h)
MASTER_RIFF_NDXid = 278 (16h, 02h)
-1 = use trigger vel, 0 to 127
Off = 0, On = 1, Preset = 2, Master = 3
any valid rom id (xlead = 7)
any valid riff index 0 to?
52 E-MU Systems
Preset Common
Parameters
Other Messages, Preset Common General Edit Parameters
General Edit
Parameters
ParameterID
PRESET_SELECTid = 897 (01h,07h)min = -1; max = 255
(-1 = Edit Buffer)
LAYER_SELECTid = 898 (02h,07h)min = -1; max = 3
-1 = Select All Layers
0-3 = Layers 1 - 4
These Selection Parameters are independent of what is selected from the
Proteus front panel. Once you select something remotely, the only way to
change the selection is remotely.
Any regular front panel editing can be done without affecting what was
selected for remote editing.
ParameterID
PRESET_NAME_CHAR_0id = 899 (03h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_1id = 900 (04h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_2id = 901 (05h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_3id = 902 (06h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_4id = 903 (07h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_5id = 904 (08h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_6id = 905 (09h,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_7id = 906 (0Ah,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_8id = 907 (0Bh,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_9id = 908 (0Ch,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_10id = 909 (0Dh,07h) min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_11id = 910 (0Eh,07h)min = 32; max = 127
(ASCII Char)
PRESET_NAME_CHAR_12id = 911 (0Fh,07h)min = 32; max = 127
(ASCII Char)
Proteus Family MIDI SysEx Specification 53
Parameters
Other Messages, Preset Common General Edit Parameters
ParameterID
PRESET_NAME_CHAR_13id = 912 (10h,07h)min = 32; max = 127
PRESET_NAME_CHAR_14id = 913 (11h,07h) min = 32; max = 127
PRESET_NAME_CHAR_15id = 914 (12h,07h)min = 32; max = 127
PRESET_CTRL_Aid = 915 (13h,07h)min = -1; max = 127
PRESET_CTRL_Bid = 916 (14h,07h)min = -1; max = 127
PRESET_CTRL_Cid = 917 (15h,07h)min = -1; max = 127
PRESET_CTRL_Did = 918 (16h,07h)min = -1; max = 127
PRESET_CTRL_Eid = 919 (17h,07h)min = -1; max = 127
PRESET_CTRL_Fid = 920 (18h,07h)min = -1; max = 127
PRESET_CTRL_Gid = 921 (19h,07h)min = -1; max = 127
PRESET_CTRL_Hid = 922 (1Ah,07h) min = -1; max = 127
PRESET_KBD_TUNEid = 923 (1Bh,07h)min = 0; max = 5
PRESET_CTRL_Iid = 924 (1Ch,07h) min = -1; max = 127
PRESET_CTRL_Jid = 925 (1Dh,07h) min = -1; max = 127
PRESET_CTRL_Kid = 926 (1Eh,07h)min = -1; max = 127
(ASCII Char)
(ASCII Char)
(ASCII Char)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
0 = equal
1 = Just C
2 = Valloti
3 = 19-Tone
4 = Gamelan
5 = Just C2
6 = Just C-minor
7 = Just C3
8 = Werkmeister III
9 = Kirnberger
10 = Scarlatti
11 = Repeating Octave
12 - 23 = User
(-1 = Current Controller Value)
(-1 = Current Controller Value)
(-1 = Current Controller Value)
54 E-MU Systems
Parameters
Other Messages, Preset Common General Edit Parameters
ParameterID
PRESET_CTRL_Lid = 927 (1Fh,07h)min = -1; max = 127
(-1 = Current Controller Value)
PRESET_CTRL_M id = 967 (71h,07h) min =-1 max =127
(-1=use current controller value)
PRESET_CTRL_N id = 968 (72h,07h) min =-1 max =127
(-1=use current controller value)
PRESET_CTRL_O id = 969 (73h,07h) min =-1 max =127
(-1=use current controller value)
PRESET_CTRL_P id = 970 (74h,07h) min =-1 max =127
(-1=use current controller value)
PRESET_RIFFid = 928 (20h,07h)min = -1; max = 127
(-127 - MIDI Note; 1-TBD Riff number)
PRESET_RIFF_ROM_IDid = 929 (21h,07h)min = -1; max = 255
PRESET_TEMPO_OFFSETid = 930 (22h,07h)min = 0; max = 4
0 = x1/4
1 = x1/2
2 = x1
3 = x2
4 = x4
PRESET_CORD_0_SOURCEid = 931 (23h,07h)min = 0; max = 255
PRESET_CORD_0_DESTid = 932 (24h,07h)min = 0; max = 255
PRESET_CORD_0_AMOUNTid = 933 (25h,07h)min = -100; max =255
PRESET_CORD_1_SOURCEid = 934 (26h,07h)min = 0; max = 255
PRESET_CORD_1_DESTid = 935 (27h,07h)min = 0; max = 255
PRESET_CORD_1_AMOUNTid = 936 (28h,07h)min = -100; max =255
PRESET_CORD_2_SOURCEid = 937 (29h,07h)min = 0; max = 255
PRESET_CORD_2_DESTid = 938 (2Ah,07h)min = 0; max = 255
PRESET_CORD_2_AMOUNTid = 939 (2Bh,07h)min = -100; max =255
PRESET_CORD_3_SOURCEid = 940 (2Ch,07h) min = 0; max = 255
PRESET_CORD_3_DESTid = 941 (2Dh,07h) min = 0; max = 255
PRESET_CORD_3_AMOUNTid = 942 (2Eh,07h)min = -100; max =255
PRESET_CORD_4_SOURCEid = 943 (2Fh,07h)min = 0; max = 255
PRESET_CORD_4_DESTid = 944 (30h,07h)min = 0; max = 255
PRESET_CORD_4_AMOUNTid = 945 (31h,07h)min = -100; max =255
PRESET_CORD_5_SOURCEid = 946 (32h,07h)min = 0; max = 255
PRESET_CORD_5_DESTid = 947 (33h,07h)min = 0; max = 255
PRESET_CORD_5_AMOUNTid = 948 (34h,07h)min = -100; max =255
PRESET_CORD_6_SOURCEid = 949 (35h,07h)min = 0; max = 255
PRESET_CORD_6_DESTid = 950 (36h,07h)min = 0; max = 255
PRESET_CORD_6_AMOUNTid = 951 (37h,07h)min = -100; max =255
PRESET_CORD_7_SOURCEid = 952 (38h,07h)min = 0; max = 255
Proteus Family MIDI SysEx Specification 55
Parameters
Other Messages, Preset Common General Edit Parameters
ParameterID
PRESET_CORD_7_DESTid = 953 (39h,07h)min = 0; max = 255
PRESET_CORD_7_AMOUNTid = 954 (3Ah,07h)min = -100; max =255
PRESET_CORD_8_SOURCEid = 955 (3Bh,07h)min = 0; max = 255
PRESET_CORD_8_DESTid = 956 (3Ch,07h) min = 0; max = 255
PRESET_CORD_8_AMOUNTid = 957 (3Dh,07h) min = -100; max =255
PRESET_CORD_9_SOURCEid = 958 (3Eh,07h)min = 0; max = 255
PRESET_CORD_9_DESTid = 959 (3Fh,07h)min = 0; max = 255
PRESET_CORD_9_AMOUNTid = 960 (40h,07h)min = -100; max =255
PRESET_CORD_10_SOURCEid = 961 (41h,07h)min = 0; max = 255
PRESET_CORD_10_DESTid = 962 (42h,07h)min = 0; max = 255
PRESET_CORD_10_AMOUNTid = 963 (43h,07h)min = -100; max =255
PRESET_CORD_11_SOURCEid = 964 (44h,07h)min = 0; max = 255
PRESET_CORD_11_DESTid = 965 (45h,07h)min = 0; max = 255
PRESET_CORD_11_AMOUNTid = 966 (46h,07h)min = -100; max =255
Other Messages, Preset Layer Filter Edit Parameters
ParameterID
LAYER_GROUPid = 1438 (1Eh,0Ch) min = 0; max = 23
0 = poly all 1 = poly 16 A
2 = poly 16 B 3 = poly 8 A
4 = poly 8 B 5 = poly 8 C
6 = poly 8 D 7 = poly 4 A
8 = poly 4 B 9 = poly 4 C
10 = poly 4 D 11 = poly 2 A
12 = poly 2 B 13 = poly 2 C
14 = poly 2 D 15 = mono A
16 = mono B 17 = mono C
18 = mono D 19 = mono E
20 = mono F 21 = mono G
22 = mono H 23 = mono I
LAYER_INST_ROM_IDid = 1439 (1Fh,0Bh) min = 0; max = 255
Edit Parameters
Preset Layer LFOs
Edit Parameters
ParameterID
(RESERVED)
LAYER_FILT_TYPEid = 1537 (01h,0Ch) min = 0; max = 255
LAYER_FILT_FREQid = 1538 (02h,0Ch) min = 0; max = 255
LAYER_FILT_Qid = 1539 (03h,0Ch) min = 0; max = 127
id = 1536 (00h,0Ch)
(Scattered like PatchCords. See table
below.)
ParameterID
(RESERVED)
LAYER_LFO1_RATEid = 1665 (01h,0Dh) min = -25; max = 127
Parameters
Other Messages, Preset Layer LFOs Edit Parameters
ParameterID
LAYER_LFO1_SHAPEid = 1666 (02h,0Dh) min = -1; max = 15
LAYER_LFO1_DELAYid = 1667 (03h,0Dh) min = -25; max = 127
LAYER_LFO1_VARid = 1668 (04h,0Dh) min = 0; max = 100 %
LAYER_LFO1_SYNCid = 1669 (05h,0Dh) min = 0; max = 1
LAYER_LFO2_RATEid = 1670 (06h,0Dh) min = -25; max = 127
LAYER_LFO2_SHAPEid = 1671 (07h,0Dh) min = 0; max = 3
LAYER_LFO2_DELAYid = 1672 (08h,0Dh) min = -25) max = 127
LAYER_LFO2_VARid = 1673 (09h,0Dh) min = 0; max = 100 %
LAYER_LFO2_SYNCid = 1674 (0Ah,0Dh) min = 0; max = 1
-1 = random
0 = triangle
1 = sine
2 = sawtooth
3 = square
4 = sine
5 = 33% pulse
6 = 25% pulse
7 = 16% pulse
8 = 12% pulse
9 = pat:octaves
10 = pat:5th + oct
11 = pat sus4trip
12 = pat:neener
13 = sine 1, 2
14 = sine 1, 3, 5
15 = sine + noise
16 = hemiquaver
(-25 to -1, see LFO1_RATE)
0 = key sync
1 = free run
(as above)
(as above)
(-25 to -1, see LFO1_RATE)
(as above)
62 E-MU Systems
Parameters
Other Messages, Preset Layer Envelope Edit Parameters
Preset Layer Envelope
Edit Parameters
Alternate Amplifier (Volume) Envelope Mode:
ParameterID
(RESERVED)
LAYER_VOL_ENV_MODEid = 1793 (01h,0Eh) min = 0; max = 2
LAYER_VENV_ATK1_RATEid = 1794 (02h,0Eh) min = 0; max = 127
LAYER_VENV_ATK1_LVLid = 1795 (03h,0Eh) min = 0; max = 100 %
LAYER_VENV_DCY1_RATEid = 1796 (04h,0Eh) min = 0; max = 127
LAYER_VENV_DCY1_LVLid = 1797 (05h,0Eh) min = 0; max = 100 %
LAYER_VENV_RLS1_RATEid = 1798 (06h,0Eh) min = 0; max = 127
LAYER_VENV_RLS1_LVLid = 1799 (07h,0Eh) min = 0; max = 100 %
LAYER_VENV_ATK2_RATEid = 1800 (08h,0Eh) min = 0; max = 127
LAYER_VENV_ATK2_LVLiid = 1801 (09h,0Eh) min = 0; max = 100 %
LAYER_VENV_DCY2_RATEid = 1802 (0Ah,0Eh) min = 0; max = 127
LAYER_VENV_DCY2_LVLid = 1803 (0Bh,0Eh) min = 0; max = 100 %
LAYER_VENV_RLS2_RATEid = 1804 (0Ch,0Eh) min = 0; max = 127
LAYER_VENV_RLS2_LVLid = 1805 (0Dh,0Eh) min = 0; max = 100 %
id = 1792 (00h,0Eh)
0 = factory
1 = abs time-based
2 = tempo-based
Proteus Family MIDI SysEx Specification 63
Parameters
Other Messages, Preset Layer Envelope Edit Parameters
Filter Envelope Mode
ParameterID
LAYER_FILT_ENV_MODEid = 1806 (0Eh,0Eh) min = 1; max = 2
LAYER_FENV_ATK1_RATEid = 1807 (0Fh,0Eh) min = 0; max = 127
LAYER_FENV_ATK1_LVLid = 1808 (10h,0Eh) min = -100;
LAYER_FENV_DCY1_RATEid = 1809 (11h,0Eh) min = 0; max = 127
LAYER_FENV_DCY1_LVLid = 1810 (12h,0Eh) min = -100;
LAYER_FENV_RLS1_RATEid = 1811 (13h,0Eh) min = 0; max = 127
LAYER_FENV_RLS1_LVLid = 1812 (14h,0Eh) min = -100;
LAYER_FENV_ATK2_RATEid = 1813 (15h,0Eh) min = 0; max = 127
LAYER_FENV_ATK2_LVLid = 1814 (16h,0Eh) min = -100;
LAYER_FENV_DCY2_RATEid = 1815 (17h,0Eh) min = 0; max = 127
LAYER_FENV_DCY2_LVLid = 1816 (18h,0Eh) min = -100;
LAYER_FENV_RLS2_RATEid = 1817 (19h,0Eh) min = 0; max = 127
LAYER_FENV_RLS2_LVLid = 1818 (1Ah,0Eh) min = -100;
1 = time-based
2 = tempo-based
max = 100 (%)
max = 100 (%)
max = 100 (%)
max = 100 (%)
max = 100 (%)
max = 100 (%)
64 E-MU Systems
Auxiliary Envelope Mode
ParameterID
LAYER_AUX_ENV_MODEid = 1819 (1Bh,0Eh) min = 1; max = 2
1 = time-based
2 = tempo-based
LAYER_AENV_ATK1_RATEid = 1820 (1Ch,0Eh) min = 0; max = 127
LAYER_AENV_ATK1_LVLid = 1821 (1Dh,0Eh) min = -100;
max = 100 (%)
LAYER_AENV_DCY1_RATEid = 1822 (1Eh,0Eh) min = 0; max = 127
LAYER_AENV_DCY1_LVLid = 1823 (1Fh,0Eh) min = -100;
max = 100 (%)
LAYER_AENV_RLS1_RATEid = 1824 (20h,0Eh) min = 0; max = 127
LAYER_AENV_RLS1_LVLid = 1825 (21h,0Eh) min = -100;
max = 100 (%)
LAYER_AENV_ATK2_RATEid = 1826 (22h,0Eh) min = 0; max = 127
LAYER_AENV_ATK2_LVLid = 1827 (23h,0Eh) min = -100;
max = 100 (%)
Preset Layer
Parameters
Other Messages, Preset Layer PatchCords Edit Parameters
ParameterID
LAYER_AENV_DCY2_RATEid = 1828 (24h,0Eh) min = 0; max = 127
LAYER_AENV_DCY2_LVLid = 1829 (25h,0Eh) min = -100;
max = 100 (%)
LAYER_AENV_RLS2_RATEid = 1830 (26h,0Eh) min = 0; max = 127
LAYER_AENV_RLS2_LVLid = 1831 (27h,0Eh) min = -100;
max = 100 (%)
LAYER_FENV_REPEATid = 1833 (29h,0Eh) min = 0 = normal;
max = 1 = repeat
LAYER_AUXENV_REPEATid = 1834 (2Ah,0Eh) min = 0 = normal;
max = 1 = repeat
PatchCords Edit
Parameters
ParameterID
(RESERVED)
LAYER_CORD0_SRCid = 1921 (01h,0Fh) min = 0; max = 255
LAYER_CORD0_DSTid = 1922 (02h,0Fh) min = 0; max = 255
LAYER_CORD0_AMTid = 1923 (03h,0Fh) min = -100;
LAYER_CORD1_SRCid = 1924 (04h,0Fh) min = 0; max = 255
LAYER_CORD1_DSTid = 1925 (05h,0Fh) min = 0; max = 255
LAYER_CORD1_AMTid = 1926 (06h,0Fh) min = -100;
LAYER_CORD2_SRCid = 1927 (07h,0Fh) min = 0; max = 255
LAYER_CORD2_DSTid = 1928 (08h,0Fh) min = 0; max = 255
LAYER_CORD2_AMTid = 1929 (09h,0Fh) min = -100;
LAYER_CORD3_SRCid = 1930 (0Ah,0Fh) min = 0; max = 255
LAYER_CORD3_DSTid = 1931 (0Bh,0Fh) min = 0; max = 255
LAYER_CORD3_AMTid = 1932 (0Ch,0Fh) min = -100;
LAYER_CORD4_SRCid = 1933 (0Dh,0Fh) min = 0; max = 255
LAYER_CORD4_DSTid = 1934 (0Eh,0Fh) min = 0; max = 255
LAYER_CORD4_AMTid = 1935 (0Fh,0Fh) min = -100;
LAYER_CORD5_SRCid = 1936 (10h,0Fh) min = 0; max = 255
LAYER_CORD5_DSTid = 1937 (11h,0Fh) min = 0; max = 255
LAYER_CORD5_AMTid = 1938 (12h,0Fh) min = -100;
LAYER_CORD6_SRCid = 1939 (13h,0Fh) min = 0; max = 255
id = 1920 (00h,0Fh)
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
Proteus Family MIDI SysEx Specification 65
Parameters
Other Messages, Preset Layer PatchCords Edit Parameters
ParameterID
LAYER_CORD6_DSTid = 1940 (14h,0Fh) min = 0; max = 255
LAYER_CORD6_AMTid = 1941 (15h,0Fh) min = -100;
LAYER_CORD7_SRCid = 1942 (16h,0Fh) min = 0; max = 255
LAYER_CORD7_DSTid = 1943 (17h,0Fh) min = 0; max = 255
LAYER_CORD7_AMTid = 1944 (18h,0Fh) min = -100;
LAYER_CORD8_SRCid = 1945 (19h,0Fh) min = 0; max = 255
LAYER_CORD8_DSTid = 1946 (1Ah,0Fh) min = 0; max = 255
LAYER_CORD8_AMTid = 1947 (1Bh,0Fh) min = -100;
LAYER_CORD9_SRCid = 1948 (1Ch,0Fh) min = 0; max = 255
LAYER_CORD9_DSTid = 1949 (1Dh,0Fh) min = 0; max = 255
LAYER_CORD9_AMTid = 1950 (1Eh,0Fh) min = -100;
LAYER_CORD10_SRCid = 1951 (1Fh,0Fh) min = 0; max = 255
LAYER_CORD10_DST id = 1952 (20h,0Fh) min = 0; max = 255
LAYER_CORD10_AMTid = 1953 (21h,0Fh) min = -100;
LAYER_CORD11_SRCid = 1954 (22h,0Fh) min = 0; max = 255
LAYER_CORD11_DSTid = 1955 (23h,0Fh) min = 0; max = 255
LAYER_CORD11_AMTid = 1956 (24h,0Fh) min = -100;
LAYER_CORD12_SRCid = 1957 (25h,0Fh) min = 0; max = 255
LAYER_CORD12_DSTid = 1958 (26h,0Fh) min = 0; max = 255
LAYER_CORD12_AMTid = 1959 (27h,0Fh) min = -100;
LAYER_CORD13_SRCid = 1960 (28h,0Fh) min = 0; max = 255
LAYER_CORD13_DSTid = 1961 (29h,0Fh) min = 0; max = 255
LAYER_CORD13_AMTid =1962 (2Ah,0Fh) min = -100;
LAYER_CORD14_SRCid = 1963 (2Bh,0Fh) min = 0; max = 255
LAYER_CORD14_DSTid = 1964 (2Ch,0Fh) min = 0; max = 255
LAYER_CORD14_AMTid = 1965 (2Dh,0Fh) min = -100;
LAYER_CORD15_SRC id = 1966 (2Eh,0Fh) min = 0; max = 255
LAYER_CORD15_DSTid = 1967 (2Fh,0Fh) min = 0; max = 255
LAYER_CORD15_AMTid = 1968 (30h,0Fh) min = -100;
LAYER_CORD16_SRCid = 1969 (31h,0Fh) min = 0; max = 255
LAYER_CORD16_DSTid = 1970 (32h,0Fh) min = 0; max = 255
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
max = +100
66 E-MU Systems
Parameters
Other Messages, Preset Layer PatchCords Edit Parameters
ParameterID
LAYER_CORD16_AMTid = 1971 (33h,0Fh) min = -100;
max = +100
LAYER_CORD17_SRCid = 1972 (34h,0Fh) min = 0; max = 255
LAYER_CORD17_DSTid = 1973 (35h,0Fh) min = 0; max = 255
LAYER_CORD17_AMTid = 1974 (36h,0Fh) min = -100;
max = +100
LAYER_CORD18_SRCid = 1975 (37h,0Fh) min = 0; max = 255
LAYER_CORD18_DSTid = 1976 (38h,0Fh) min = 0; max = 255
LAYER_CORD18_AMTid = 1977 (39h,0Fh) min = -100;
max = +100
LAYER_CORD19_SRCid = 1978 (3Ah,0Fh) min = 0; max = 255
LAYER_CORD19_DSTid = 1979 (3Bh,0Fh) min = 0; max = 255
LAYER_CORD19_AMTid = 1980 (3Ch,0Fh) min = -100;
max = +100
LAYER_CORD20_SRCid = 1981 (3Dh,0Fh) min = 0; max = 255
LAYER_CORD20_DSTid = 1982 (3Eh,0Fh) min = 0; max = 255
LAYER_CORD20_AMTid = 1983 (3Fh,0Fh) min = -100;
max = +100
LAYER_CORD21_SRCid = 1984 (40h,0Fh) min = 0; max = 255
LAYER_CORD21_DSTid = 1985 (41h,0Fh) min = 0; max = 255
LAYER_CORD21_AMTid = 1986 (42h,0Fh) min = -100;
max = +100
LAYER_CORD22_SRCid = 1987 (43h,0Fh) min = 0; max = 255
LAYER_CORD22_DSTid = 1988 (44h,0Fh) min = 0; max = 255
LAYER_CORD22_AMTid = 1989 (45h,0Fh) min = -100;
max = +100
LAYER_CORD23_SRCid = 1990 (46h,0Fh) min = 0; max = 255
LAYER_CORD23_DSTid = 1991 (47h,0Fh) min = 0; max = 255
LAYER_CORD23_AMTid = 1992 (48h,0Fh) min = -100;
max = +100
There are a maximum of 256 Source and Destination settings (including
Off). They are grouped, and not numbered in a linear fashion. Additions
may be included in the future.
Source Destination
0 = Off 0 = Off
4 = XfdRnd
(Crossfade Random)
8 = Key+ (Key 0...127) 47 = FinePtch
9 = Key~ (Key -64...+63) 48 = Pitch
10 = Vel+ (Velocity 0...127) 49 = Glide
8 = KeySust
Proteus Family MIDI SysEx Specification 67
Parameters
Other Messages, Preset Layer PatchCords Edit Parameters
/*
*
* example fil_freq (100, 20000, 1002)
* in=0..255
*/
int fil_freq (int input, int maxfreq, int mul)
{
int f = maxfreq;
input = 255 - input;
while (input-- > 0)
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 (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 r1
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 r1
2. 2 in Hex = 02 = msb
3. 1 in Hex = 01 = lsb
4. Parameter number would be transmitted as 01 02
Notes
Parameters
Notes, 14-bit Signed 2's Complement Numbers
Proteus Family MIDI SysEx Specification 79
E-MU SystemsE-MU Systems, Ltd.
1600 Green Hills RoadSuite 6, Adam Ferguson House
Scotts Valley, CA USAEskmills Industrial Park
95067-0015Musselburgh, East Lothian
Telephone: 831-438-1921Scotland, EH21 7PQ
Fax: 831-438-8612Tel: +44 (0) 131-653-6556
Internet: www.emu.comFax: +44 (0) 131-665-0473
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.