Proteus Technical Data






Addendum to Proteus MIDI Specification follows the initial specification.

Proteus Operation Manual in PDF format.

The following information was obtained from the Proteus Operation Manual; Copyright 1989 E-mu Systems, Inc. The specifications are the same for both the Proteus/1 and Proteus/2 sound modules.

Technical Specifications
Audio Channels 32
Audio Outputs 6
Submix Inputs 4
Max. Output Level +4 dB into 600 ohms
Output Impedance 100 ohms
MIDI In, Out, Thru
Data Encoding 16 bit Linear
Sample Playback Rate 39 kHz
Signal to Noise Greater than 90 dB
Dynamic Range Greater than 90 dB
Frequency Response 20Hz-18kHz
THD +N Less than .05%
IMD Less than .05%
Stereo Phase Phase Coherent
Power Requirements 25 watts
Operating Temperature 110 degrees F Max.
Dimensions H: 1.75" W: 19" L: 8.5"
Weight Proteus/1 - 4lb, 7oz (2 Kg)
Proteus/2 - 4lb, 12.5oz (2.173 Kg)
Proteus/3 - 4lb, 7oz (2 Kg)


Proteus Audio Bus
Each of the Sub 1 and Sub 2 output jacks on the Proteus are stereo jacks. The Tip of each jack, accessed when a standard phone plug is inserted, connects to the left or right output of that group. If a stereo plug is inserted, the Ring of the stereo plug serves as a signal Return which sums into the main outputs.
The Sub 1 and Sub 2 jacks can be used as send/returns in order to further process selected Proteus instruments without using the effects bus on the mixing board. In a pinch, the effect returns could also be used to sum additional instruments into the main outputs of the Proteus.


MIDI Received Channel Commands
All message bytes are represented by a two digit hex value. The second digit (n) of first message byte is the MIDI channel number; range 0-F.
Command Message Comments
Note Off 8n kk vv kk = Key number, 00-7F. vv ignored.
Note On 9n kk vv Velocity (vv) = 00, note off
Key Pressure An kk pp parameter (pp) = 00-7F
Realtime Controller Bn cc pp cc = 00-1F
Footswitch Bn cc pp cc = 40-4F, pp >= 40; switch on
Volume Bn 07 pp pp = 00-7F
Pan Bn 0A pp pp; 00 = hard Left, 7F = hard right
Reset All Controllers Bn 79 00 Ignored in Omni mode
All Notes Off Bn 7B 00 Ignored in Omni mode
Omni Mode Bn 7D 00 Forces all notes and controls off
Mono Mode Bn 7E 00 Forces all notes and controls off
Poly Mode Bn 7F 00 Forces all notes and controls off
Program Change Cn pp pp = 00-7F
Channel Pressure Dn pp pp = 00-7F
Pitch Wheel En ll mm ll = lsb, mm = msb



For system exclusive (Sysex) commands, the Proteus sound modules use the following command format:

Proteus Sysex Format
F0system exclusive status byte
18E-mu ID byte
04product ID byte
dddevice ID byte
cccommand byte
...data bytes
F7end of message byte

The value for dd is the current unit ID value as established by the Proteus Master menu ID setting. The value for cc is the command to be performed by the Proteus unit. Additional required data bytes are command specific.

For commands requiring large data values, two 7 bit MIDI bytes (lsb,msb) must be used for each 14 bit data word. Bits 6-0 are sent first followed by bits 13-7 in the next MIDI byte. All data words are signed 2's complement values with sign extension out to the most significant bit (bit 13). This convention applies to all data words reqardless of the parameter's value range.

Example: To change via sysex command the Proteus global pitch bend range (parameter number 262), convert 262 into two 7 bit bytes as follows.

1. Convert 262 to binary:

Bit13121110987 6543210
Power of 28192409620481024512 2561286432168421
Binary000001000 00110

2. Convert bits 6-0 into a hex value for the lsb portion.

0000110=06

3. Convert bits 13-7 into a hex value for the msb portion.

0000001=02

4. Assemble the sysex command string in lsb msb order (0C 00 specifies a +/- 12 semitone range):

F0180400030602 0C00F7



Received System Commands
The following sysex commands are recognized by the Proteus sound module when sent to the unit from an external MIDI source.
Command Message Comments
Preset Data Request F0 18 04 dd 00 ll mm F7 ll = preset # lsb, mm = msb
7F7F = all user presets
7E7F = all factory presets
Preset Data F0 18 04 dd 01 ll mm ... ... cs F7 cs = checksum = sum of all bytes
See preset data section.
Parameter Value Request F0 18 04 dd 02 pl pm F7 pl = parameter # lsb, pm = msb
Parameter Value F0 18 04 dd 03 pl pm vl vm F7 vl = value lsb, vm = msb
See parameter editing section.
Tuning Table Request F0 18 04 dd 04 F7
Tuning Table F0 18 04 dd 05 ... ... F7 See alternate tuning section.
Program Map Request F0 18 04 dd 06 ... ... F7
Program Map Data F0 18 04 dd 07 ... ... F7 See program mapping section.


Transmitted System Commands
The following sysex data is sent by the Proteus sound module to an external MIDI destination in response to a received command.
Command Message Comments
Preset Data F0 18 04 dd 01 ll mm ... ... cs F7 cs = checksum = sum of all bytes
See preset data section.
Parameter Value F0 18 04 dd 03 pl pm vl vm F7 pl = value lsb, pm = msb
vl = value lsb, vm = msb
See parameter editing section.
Tuning Table F0 18 04 dd 05 ... ... F7 ... ... = tt data = 256 bytes
See alternate tuning section.
Program Map Data F0 18 04 dd 07 ... ... F7 See program mapping section.


Parameter Editing:
Preset and setup parameters may be edited individually using system exclusive commands. The preset edited is the active preset (the preset currently assigned to the receiving channel). The value of a given parameter may be changed by sending a parameter value command. The value of a parameter may be read by sending a parameter value request, to which the Proteus unit will respond by sending back the parameter value.

Preset data may also be transmitted or received in a single block (one complete preset) using system exclusive command. A preset data request may be issued by a host computer, to which the Proteus unit will respond by sending the data block for the requested preset. Conversely, the computer may send new preset data using the preset data command which will replace the specified preset currently in the Proteus unit.

Additionally, a Proteus front panel Master Menu command will transmit one or all user presets for backup onto an external MIDI sequencer or computer. These presets may be restored by simply playing back the sequence into the Proteus unit.

Alternate Tuning:
The "User Tuning Table" allows any key to be tuned to an arbitrary pitch over an 8 octave range. If specified in the preset, an alternate tuning may be achieved by modifying the tuning values from the Proteus front panel or downloading a new table into the Proteus unit. The table consists of 128 words, corresponding to the MIDI keyboard range, and is kept in the Proteus non-volatile memory area. Each word is a pitch value expressed in 1/64 semitones, offset from key number 0 (C2). For equal temperment, each entry in the table is set to its key number times 64.

Preset Data Format:
Preset data is transmitted and received in a single block using the following format. The standard system exclusive header (F0 18 04 dd 01) is followed by the preset number (lsb,msb). This is followed by 14 bit word for each preset parameter number (lsb,msb) starting at parameter #0 and continuing through parameter #127. The block is terminated with a one byte checksum and the end-of-exclusive byte (F7). The checksum value us the modulo 128 sum of all the parameter value bytes. That is, all of the data bytes following the preset number and before the checksum. Modulo 128 means to divide the sum of all parameter bytes by 128 and set the checksum byte equal to the remainder of the division operation. For more information on modulo, see discussion on hex numbers.

Preset Parameters
Number Name Number Name
0 - 11 Preset Name, 12 56 sec sec solo mode
ascii characters 57 sec chorus
12 - 14 link 1 - 3 58 sec reverse sound
15 - 18 low key 0 - 3 59 crossfade mode
19 - 22 high key 0 - 3 60 crossfade direction
23 pri instrument 61 crossfade balance
24 pri sample start offset 62 crossfade amount
25 pri tuning (coarse) 63 switch point
26 pri tuning (fine) 64 LFO 1 shape
27 pri volume 65 LFO 1 frequency
28 pri pan 66 LFO 1 delay
29 pri delay 67 LFO 1 variation
30 pri low key 68 LFO 1 amount
31 pri high key 69 LFO 2 shape
32 pri alt attack 70 LFO 2 frequency
33 pri alt hold 71 LFO 2 delay
34 pri alt decay 72 LFO 2 variation
35 pri alt sustain 73 LFO 2 amount
36 pri alt release 74 aux delay
37 pri alt envelope on 75 aux attack
38 pri solo mode 76 aux hold
39 pri chorus 77 aux decay
40 pri reverse sound 78 aux sustain
41 sec instrument 79 aux release
42 sec sample start offset 80 aux amount
43 sec tuning (coarse) 81 - 86 key/vel source 1-6
44 sec tuning (fine) 87 - 92 key/vel dest 1-6
45 sec volume 93 - 98 key/vel amount 1-6
46 sec pan 99 - 106 realtime source 1-8
47 sec delay 107 - 114 realtime dest 1-8
48 sec low key 115 - 117 footswitch dest 1-3
49 sec high key 118 - 121 controller amount A-D
50 sec alt attack 122 pressure amount
51 sec alt hold 123 pitch bend range
52 sec alt decay 124 velocity curve
53 sec alt sustain 125 keyboard center
54 sec alt release 126 submix
55 sec alt envelope on 127 keyboard tuning


Global/Setup Parameters
Number Name Number Name
256 MIDI basic channel 263 global velocity curve
257 MIDI volume 264 MIDI mode
258 MIDI Pan 265 MIDI overflow
259 current preset 266 - 269 controller A-D numbers
260 master tune 270 - 272 footswitch 1-3 numbers
261 transpose 273 mode change enable
262 global pitch bend range 274 devide ID number
384 - 399 MIDI channel enable 416 - 431 mix out (per MIDI channel)
400 - 415 MIDI program change enable 512 - 639 MIDI program/preset map


Program Mapping:
MIDI program changes will normally correspond to internal preset numbers 0 - 127. However, the user may "re-map" any MIDI program number, assigning it to an arbitrary internal preset. This feature allows any of the internal presets to be selected from a MIDI keyboard controller.


Proteus XR

Several commands have been added to support external control of the Proteus XR.

Preset Data Request:
Proteus presets are organized into banks. Each bank consists of 64 presets. Proteus XR has 6 banks of presets (0 - 383), while the standard Proteus only has the first three (0 - 191). Banks may be requested using the preset request command and the appropriate preset code listed below.

Proteus XR Bank Request
Bank Preset Range Preset Number MIDI Message
0 0 - 63 1024 (0x400) F0 18 04 dd 00 00 08 F7
1 64 - 127 1025 (0x401) F0 18 04 dd 00 01 08 F7
2 128 - 191 1026 (0x402) F0 18 04 dd 00 02 08 F7
3 192 - 255 1027 (0x403) F0 18 04 dd 00 03 08 F7
4 256 - 319 1028 (0x404) F0 18 04 dd 00 04 08 F7
5 320 - 383 1029 (0x405) F0 18 04 dd 00 05 08 F7
6 (Proteus/1 Xpander only 384 - 447 1030 (0x406) F0 18 04 dd 00 06 08 F7
0 - 3 (XR only) 0 - 255 -3 F0 18 04 dd 00 7D 7F F7
4 - 5 (XR only) 256 - 383 -4 F0 18 04 dd 00 7C 7F F7

The original commands for requesting user presets (-1:64 - 127) and factory presets (-2:0 - 63) are still supported to retain compatibility with existing software.
Master Settings Request:
A command has been added which requests the master settings as a group. The master settings request is:
F0 18 04 dd 08 F7
The Proteus will respond by sending the master settings as a string of parameter changes. This is identical to the data that is sent when the procedure is initiated from the Proteus front panel.
Version Request:
A command has been added to allow identification of the Proteus machine type and software revision. The version request command is:
F0 18 04 dd 0A F7
The Proteus will respond to this command with the version data in the form:
F0 18 04 dd 0B vv r1 r2 r3 F7
vv = version code; 0 = standard Proteus, 1 = XR.
r1, r2, r3 = software revision number in ascii; decimal point between r1 and r2.

Addendum To Proteus MIDI Specification

This addendum was originally dated 3-04-92 and applies to the Proteus/2, Proteus/3, and Proteus Expansion Sets.

Please note changes to "Instrument List" command and the addition of variable chorus.

Sound Sets:
A Proteus sound set consists of 4 Megabytes of sample data (sound ROMs) plus additional instrument data in the program ROMs. Proteus may contain one or two complete sound sets. Each sound set has a unique ID number; the "Pop/Rock" sound set in the Proteus/1 is sound set #0. The Proteus/2 contains sound sets #1 and #2. It is desireable to be able to support "mix-and-match" configurations and be able to successfully transfer presets from one configuration to another. For example, it should be possible to exchange presets from a Proteus/2 and an expanded Proteus/1 if the instruments come from common sound sets.

In order to achieve this compatibility between different Proteus configurations, it is necessary to include the sound set number as part of the instrument number when exchanging data. The instrument number (as expressed over MIDI) now contains two fields: bits 8-12 specify the sound set (0-31) and bits 0-7 specify the instrument within the sound set (0-255). Since Proteus/1 contains sound set #0, compatibility with existing products is maintained.

Instrument bit fields:
Bits 12 ------- 8 7 ---------------------- 0
<- Sound Set -> <- Instrument Number ->
Within any given sound set, the first instrument is #1 and #0 selects "None".

Expanded Presets:
The expanded Proteus/1 will contain additional factory presets in ROM. The additional presets can be uploaded using the "preset/bank request" command. The new presets will be in bank #3 (0x403) for non-XR and bank #6 (0x406) for XR versions.

Product ID:
The product ID code is the same for all configurations.

Configuration Message:
A new MIDI command has been added to identify the sound sets is a given Proteus. The configuration request command is:
F0 18 04 dd 0C F7
The Proteus will respond to this command with the configuration message:
F0 18 04 dd 0D pl pm s1 l1 m1 s2 l2 m2 F7
where pl and pm are the lsb and msb of the total number of presets, s1 and s2 are the ID numbers of the sound sets contained in this unit, and n1=l1,m1 and n2=l2,m2 represet the lsb and msb of the number of instruments in each sound set.
If no expansion set is present, s2 will be 7F and n2 will be zero. If the Proteus contains firmware earlier than version 2.10, no response will be given, and one can assume sound set #0.


Configurations
ProductSound Set(s)
Proteus/10
Proteus/1 + Orchestral0,2
Proteus/1 + Invision0,3
Proteus/21,2
Proteus/34

Instrument List:
A new MIDI command has been added to allow external software to upload the instrument list as an array of ascii strings. The instrument list request command is:
F0 18 04 dd 0E F7
Proteus will respond to this command with the instrument list message:
F0 18 04 dd 0F (14 bytes per instrument) ... ... F7
The instruments are transmitted in the same order that they appear to the user on Proteus. Note that a given instrument's position in this list may be different than its actual number within the sound set.
instrument entry: il im (11 ascii bytes) 00
Each instrument entry in the list consists of the actual instrument number (as defined in the preceeding Sound Sets section) in lsb/msb format, followed by the instrument name (11 ascii characters plus a zero terminator) for a total of 14 (decimal) bytes. The first instrument is #1 as displayed on Proteus. The total number of instrument names is equal to (n1+n2) in the preceeding Configuration Message. Proteus firmware earlier than version 2.10 will not respond to this command.
Preset List:
A new MIDI command has been added to allow external software to upload all preset names as an array of ascii strings. The preset list request command is:
F0 18 04 dd 12 F7
The Proteus will respond to this command with the preset list message:
F0 18 04 dd 13 (13 bytes per preset) ... ... F7
Each preset name is 12 ascii characters, plus a zero terminator, for a total of 13 (decimal) bytes. The first preset is #0. The total number of preset names is equal to pp in the preceeding Configuration Message. Proteus firmware earlier than version 2.10 will not respond to this command.

Variable Chorus:
Proteus firmware starting with version 2.10 features a variable chorus depth. The range of values is now 0 (Off) through 15, with a value of 7 corresponding to 1 (On) in Proteus/1. The MIDI parameter number for chorus is unchanged.

Bulk Tuning Dump:
Proteus/3 and above can now receive MIDI Tuning Standard dumps in addition to its own Sysex tuning table dumps. Proteus will only transmit in its own Sysex tuning format. The MIDI Tuning Standard is as follows :
F0 7E dd 08 01 tt [tuning name (16 ascii)] ... F7
dd = device ID, tt = tuning program number (ignored), tuning name = (ignored)
... = data (xx yy zz) frequency data for one note, repeated for 128 notes.
xx yy zz = 0xxxxxxx 0abcdefg 0hijklmn
xxxxxxx = semitone, abcdefghijklmn = fraction of a semitone in .0061 cent units.
Examples: Middle C = 3C 00 00, A440 = 45 00 00

Transfer of Presets from Proteus Modules to the Master Performance System:
Presets may be transferred from the Proteus sound module to the Master Performance System using the Send MIDI Data function in the Master menu if the two units have the same sound sets. Parameters on the Master Performance System (such as effects) which do not exist on the Proteus modules will be set to default value. Presets will be placed into the matching location on the Master Performance System and will overwrite presets currently residing there. If there is no RAM location on the Master Performance System corresponding to that of Proteus, then the preset will simply not be received.

For example, when transferring the RAM bank of presets 64-127 from Proteus to the Master Performance System, only presets 100-127 will be received, since locations 64-99 do not exist in RAM on the Master Performance System. Presets 64-99 must first be moved above location 99 in order to be transferred. A computer based preset/librarian helps immeasureably in this operation and is highly recommended. If the Proteus contains sound sets (Orchestral, World, InVision) which are not contained in the Master Performance System, the preset will transfer but the instrument will be set to 000 (off).


Use your browser's Back control to return to the previous page.