E-Mu Emax Implementation

******************************************************************************** EMAX MIDI and RS-422 specs Copyright E-MU Systems 1986 Valid for EMAX Software Rev. 3.0 12/16/86 ********************************************************************************
QUICK REFERENCE EMAX MIDI IMPLEMENTATION CHART:
X = item implemented
- = item not implemented
MIDI command Transmitted? Received? Comments
=> The EMAX will transmit and receive data at one of two speeds: => --31.25 Kbaud (asynchronous, MIDI or RS-422). => --500.0 Kbaud (synchronous, RS-422 only, odd parity). => The EMAX powers up at 31.25 Kbaud. => Numbers in parenthesis () decimal, all others hex.
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> TRANSMITTED MESSAGES: Basic MIDI Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
................................................................................
Note Off 9n n = MIDI channel no. (0 to 15) kk kk= key# (21 to 108) (A-1 to C7) 00 zero velocity =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Note On 9n n = MIDI channel no. (0 to 15) kk kk= key# (21 to 108) (A-1 to C7) vv vv = velocity (1 to 127) =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Continuous Controller bn n = MIDI channel no. (0 to 15) cc cc = controller number (0 to 31) vv vv = controller value (0 to 127) =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Sustain Footswitch bn n = MIDI channel no. (0 to 15) 40 cc = controller number (64) vv vv = controller value (0 to 127) =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Preset Change cn n = MIDI channel no. (0 to 15) pp pp = preset number (0 to 99) =>EMAX will send this only if preset change has been enabled in current preset.
................................................................................
Channel Pressure dn n = MIDI channel no. (0 to 15) pp pp = preset number (0 to 127) =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Pitch Wheel en n = MIDI channel no. (0 to 15) 00 wheel lsb = 0 ww ww = wheel value (0 to 127) =>Not sent by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Song Select f3 ss ss = sequence # (0 to 99) =>Sent by EMAX when a new sequence is selected.
................................................................................
Timing Clock f8
................................................................................
Sequencer Start fa
................................................................................
Sequencer Stop fc
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> TRANSMITTED MESSAGES: MIDI System Exclusive Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
................................................................................
Send Voice Parameter f0 system exclusive 18 E-mu id 02 EMAX id 30 exclusive #30 kk key # (0 to 87) 0L level (0=primary, 1=secondary) pp voice parameter # (see list) vv voice parameter value f7 EOX =>EMAX will only do this if requested to (exclusive #00). Uses current preset.
................................................................................
Send Preset Parameter f0 system exclusive 18 E-mu id 02 EMAX id 31 exclusive #31 pp preset# (0 to 99, or 127 for current preset) pp preset parameter # (see list) vv preset parameter value f7 EOX =>If parameter# 0's value is zero, then the preset is empty. =>EMAX will only do this upon receiving a request (exclusive #01).
................................................................................
Send Misc Info f0 system exclusive 18 E-mu id 02 EMAX id 32 exclusive #32 pp current preset # (0 to 99) tt master tune value (0 to 31), (16) is zero tune offset xx bit 0: supermode 1=on 0=off bit 1: midi overflow 1=on 0=off bit 2-4: arp clock source: 0: internal 1: midi 2: 24 ppq 3: 48 ppq 4: 96 ppq LL sound RAM remaining (bits 0-6) nn sound RAM remaining (bits 7-13) mm sound RAM remaining (bits 14-18) LL preset RAM remaining (bits 0-6) nn preset RAM remaining (bits 7-13) 0m preset RAM remaining (bit 14) ss software rev (letter 0, ASCII) .. software rev (letters 1 to 14) ss software rev (letter 15, ASCII) f7 EOX =>EMAX will only do this upon receiving a request (exclusive #02).
................................................................................
Send Sample Info f0 system exclusive 18 E-mu id 02 EMAX id 33 exclusive #33 kk key # (0 to 87) 0L level (0=primary, 1=secondary)
0s sample rate (0 to 7) 0: 10.000khz 1: 15.625khz 2: 20.000khz 3: 22.050khz 4: 27.778khz 5: 31.250khz 6: 41.667khz 7: 44.100khz LL length (bits 0-6) LL length (bits 7-13) LL length (bits 14-18) ss sustain loop start (bits 0-6) ss sustain loop start (bits 7-13) ss sustain loop start (bits 14-18) ee sustain loop end (bits 0-6) ee sustain loop end (bits 7-13) ee sustain loop end (bits 14-18) ss release loop start (bits 0-6) ss release loop start (bits 7-13) ss release loop start (bits 14-18) ee release loop end (bits 0-6) ee release loop end (bits 7-13) ee release loop end (bits 14-18) 0f loop & direction flags bit0: loop on bit1: loop in release bit2: backwards f7 EOX =>EMAX will only do this upon receiving a request (exclusive #03).
................................................................................
Send Crossfade Info f0 system exclusive 18 E-mu id 02 EMAX id 34 exclusive #34 kk key # (0 to 87) 0c crossfade info: bits 0-2: 0: off 1: velocity fade 2: velocity switch 3: positional 4: realtime fade 5: realtime switch bit 3: 0: primary hard 1: secondary hard ss positional start key (0 to 87) 0k # keys in pos section-1(0 to 15) f7 EOX =>EMAX will only do this if requested to (exclusive #04). Uses current preset.
................................................................................
Send Primary Voice Map f0 system exclusive 18 E-mu id 02 EMAX id 35 exclusive #35 pp primary voice# for key# (00) pp primary voice# for key# (01) .. primary voice# for keys# (02-86) pp primary voice# for key# (87)
f7 EOX =>A voice number of 127 (7f) denotes an empty voice. =>While these voice numbers do not match the voice numbers the EMAX displays on the LCD when selecting voices, there is a one-to-one correspondence between the two sets of numbers. =>EMAX will only do this upon receiving a request (exclusive #05).
................................................................................
Send Secondary Voice Map f0 system exclusive 18 E-mu id 02 EMAX id 36 exclusive #36 ss secondary voice# for key# (00) ss secondary voice# for key# (01) .. secondary voice# keys# (02-86) ss secondary voice# for key# (87) f7 EOX =>A voice number of 127 (7f) denotes an empty voice. =>While these voice numbers do not match the voice numbers the EMAX displays on the LCD when selecting voices, there is a one-to-one correspondence between the two sets of numbers. =>EMAX will only do this upon receiving a request (exclusive #06).
................................................................................
Send One Sample Fast f0 system exclusive 18 E-mu id 02 EMAX id 37 exclusive #37 kk key # (0 to 87) 0L level (0=primary, 1=secondary) LL length (bits 0-6) LL length (bits 7-13) LL length (bits 14-18) f7 EOX =>EMAX then switches internally to 500 kbaud. =>EMAX waits for receive to send ACK (see MMA exclusives) at 500khz: =>if no ACK comes within the timeout period, (programmable by using exclusive #21) EMAX displays error and aborts. =>EMAX starts high speed transfer by sending MMA-type data packet at 500 kbaud: =>Sound data in the data packet is sent as 12 bit SIGNED linear data. =>Data packet (see MMA Data Packet) contains 120 bytes packed like this: byte 0: bbaaaaaa aaaaaa = 6 ls bits of data word 0 byte 1: ccccbbbb bbbbbb = 6 ms bits of data word 0 byte 2: ddddddcc cccccc = 6 ls bits of data word 1 dddddd = 6 ms bits of data word 1 byte 3: ffeeeeee eeeeee = 6 ls bits of data word 2
--etc-­ byte 119: zzzzzzyy zzzzzz = 6 ms bits of data word 79 =>Note that bit 7 is used in these packets, unlike standard MMA format. =>EMAX then waits for an ACK, as per MMA protocol: =>if no response comes within a few seconds, EMAX sends CANCEL, aborts. =>if NAK or transmission error, EMAX retransmits packet. EMAX will try re-sending 5 times before giving up and sending CANCEL. =>if CANCEL, EMAX displays "Cancelled by Receiver" and aborts. =>if WAIT, EMAX resets its timeout counter (a few seconds). If receiver needs more time, it must keep sending WAITs. =>if ACK, EMAX increments packet number and transmits next packet. =>Maximum packet number is 127, as per MMA protocol. Packet numbers wraparound and continue from 0 after that. =>Receiver must handshake the last packet (respond with ACK). =>After completion of transfer, EMAX automatically switches back to 31.25 kbaud. =>The "length" in the header refers to # of 12-bit data words, (80 per
packet) not to the actual number of bytes in the packet, which is 120. =>If key and level refer to a null voice, EMAX sets length=0 and does no high speed transfer at all. =>EMAX will only do this command upon receiving a request (exclusive #07). =>Uses current preset.
................................................................................
Send Ready f0 system exclusive 18 E-mu id 02 EMAX id 38 exclusive #38 f7 EOX =>EMAX sends this after processing time-consuming system exclusives. =>Sender should wait for this signal before sending more commands. =>EMAX will also send this if requested to (exclusive #08).
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> TRANSMITTED MESSAGES: MMA Sample Dump Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< =>MMA stands for MIDI Manufacturer's Association. =>For more details on MMA exclusives, contact an MMA representative.
................................................................................
MMA Sample Dump Header f0 system exclusive 7e 0c midi base channel (0 to 15) 01 MMA exclusive number kk sample number (Key # 0 to 87) 0L sample number (Pri/Sec 0 or 1) 0c significant bits (12) pp sample period (lsb) in nsec pp sample period (nsb) pp sample period (msb) LL sample length (lsb) in words LL sample length (nsb) LL sample length (msb) ss sustain loop start word (lsb) ss sustain loop start word (nsb) ss sustain loop start word (msb) ee sustain loop end word (lsb) ee sustain loop end word (nsb) ee sustain loop end word (msb) 0t loop type (0-fwd 1-bkd/fwd) f7 EOX
................................................................................
MMA Data Packet f0 system exclusive 7e 0c midi base channel (0 to 15) 02 MMA exclusive number cc packet count (0 to 127) .. 120 data bytes .. xx checksum of above 124 bytes f7 EOX =>The 120 data bytes represent 60 12-bit unsigned linear EMAX data words: byte 0: 0bbbbbbb bbbbbbb = 7 ms bits of data word 0 byte 1: 0aaaaa00 aaaaa = 5 ls bits of data word 0 byte 2: 0ddddddd ddddddd = 7 ms bits of data word 1 byte 3: 0ccccc00 ccccc = 5 ls bits of data word 1
--etc-­ byte 119: 0yyyyy00 yyyyyyy = 5 ls bits of data word 59
................................................................................
Acknowledge (ACK) f0 system exclusive 7e 0c midi base channel (0 to 15) 7f pp packet number f7 EOX
................................................................................
Not Acknowledged (NAK) f0 system exclusive 7e 0c midi base channel (0 to 15) 7e pp packet number f7 EOX
................................................................................
Cancel Dump (CANCEL) f0 system exclusive
7e 0c midi base channel (0 to 15) 7d pp packet number f7 EOX
................................................................................
Wait (WAIT) f0 system exclusive 7e 0c midi base channel (0 to 15) 7c pp packet number f7 EOX
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> RECEIVED MESSAGES: Basic MIDI Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
................................................................................
Note Off 8n n = MIDI channel no. (0 to 15) kk kk= key# (21 to 108) (A-1 to C7) vv vv = velocity (1 to 127) ignored =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Note Off 9n n = MIDI channel no. (0 to 15) kk kk= key# (21 to 108) (A-1 to C7) 00 zero velocity =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Note On 9n n = MIDI channel no. (0 to 15) kk kk = key# (21 to 108) (A0 to C6) vv vv = velocity (1 to 127) =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Continuous Controller bn n = MIDI channel no. (0 to 15) cc cc = controller # (0 to 31) vv vv = controller value (0 to 127) =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Sustain Footswitch bn n = MIDI channel no. (0 to 15) 40 cc = controller number (64) vv vv = controller value (0 to 63 = off) (64 to 127 = on) =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Local Control Off bn n = MIDI channel no. (0 to 15) 7a (122) 00 =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Local Control On bn n = MIDI channel no. (0 to 15) 7a (122) 7f =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
All Notes Off bn n = MIDI channel no. (0 to 15) 7b (123) 00 =>MIDI "All Notes Off" messages only turn off notes whose source was MIDI. =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Poly Mode (all notes off) bn n = MIDI channel no. (0 to 15) 7c (124) 00 =>EMAX ignores the midi mode change, but it does execute "all notes off". =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Omni Mode (all notes off) bn n = MIDI channel no. (0 to 15) 7d (125) 00 =>EMAX ignores the midi mode change, but it does execute "all notes off". =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Mono Mode (all notes off) bn n = MIDI channel no. (0 to 15)
Loading...
+ 18 hidden pages