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)
7e (126) 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".
................................................................................
Poly Mode (all notes off) bn n = MIDI channel no. (0 to 15) 7f (127) 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".
................................................................................
Preset Change cn n = MIDI channel no. (0 to 15) pp pp = preset number (0 to 99) =>Always received. "Preset Change On/Off" from the front panel has no effect.
................................................................................
Channel Pressure dn n = MIDI channel no. (0 to 15) pp pp = pressure value (0 to 127) =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no".
................................................................................
Pitch Wheel en n = MIDI channel no. (0 to 15) xx xx = don't care ww ww = wheel value (0 to 127) =>Ignored by EMAX if the front panel midi option "Notes,Wheels" is set to "no". =>Range selectable via front panel "pitch bend range" (0 to +- 4 semitones).
................................................................................
Song Position Pointer f2 xx xx = don't care xx xx = don't care =>EMAX does NOT respond to position information, but it does reset all internal sequencer wheels in case they were left hanging by an external controller.
................................................................................
Song Select f3 ss ss = sequence # (0 to 99) =>Receiving this selects a new sequence on the EMAX.
................................................................................
Timing Clock f8
................................................................................
Sequencer Start fa
................................................................................
Sequencer Stop fc
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> RECEIVED MESSAGES: MIDI System Exclusive Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
................................................................................
Request to Send Voice Parameter f0 system exclusive 18 E-mu id 02 EMAX id 00 exclusive #00 kk key # (0 to 87) 0L level (0=primary, 1=secondary) pp voice parameter # (see list) f7 EOX =>Upon receiving this, EMAX does a Send Voice Parameter (exclusive #30). =>Uses current preset.
................................................................................
Request to Send Preset Parameter f0 system exclusive 18 E-mu id 02 EMAX id 01 exclusive #01 pp preset# (0 to 99, or 127 for current preset) pp preset parameter # (see list) f7 EOX =>Upon receiving this, EMAX does a Send Preset Parameter (exclusive #31).
................................................................................
Request to Send Misc Info f0 system exclusive 18 E-mu id 02 EMAX id 02 exclusive #02 f7 EOX =>Upon receiving this, EMAX does a Send Misc Info (exclusive #32).
................................................................................
Request to Send Sample Info f0 system exclusive 18 E-mu id 02 EMAX id 03 exclusive #03 kk key # (0 to 87) 0L level (0=primary, 1=secondary) f7 EOX =>Upon receiving this, EMAX does a Send Sample Info (exclusive #33). =>Uses current preset.
................................................................................
Request to Send Crossfade Info f0 system exclusive 18 E-mu id 02 EMAX id 04 exclusive #04 kk key # (0 to 87) f7 EOX =>Upon receiving this, EMAX does a Send Crossfade Info (exclusive #34). =>Uses current preset.
................................................................................
Request to Send Primary Voice Map f0 system exclusive 18 E-mu id 02 EMAX id 05 exclusive #05 f7 EOX =>Upon receiving this, EMAX does a Send Primary Voice Map (exclusive #35).
................................................................................
Request to Send Secondary Voice Map f0 system exclusive 18 E-mu id
02 EMAX id 06 exclusive #06 f7 EOX =>Upon receiving this, EMAX dos a Send Secondary Voice Map (exclusive #36).
................................................................................
Request to Send One Sample Fast f0 system exclusive 18 E-mu id 02 EMAX id 07 exclusive #07 kk key # (0 to 87) 0L level (0=primary, 1=secondary) f7 EOX =>Upon receiving this, EMAX dos a Send One Sample Fast (exclusive #37). =>Uses current preset.
................................................................................
Request to Send Ready f0 system exclusive 18 E-mu id 02 EMAX id 08 exclusive #08 f7 EOX =>Upon receiving this, EMAX dos a Send Ready (exclusive #38). =>Provided as a means for an external device to find out if EMAX is present.
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> RECEIVED MESSAGES: More System Exclusive Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
................................................................................
Execute Load Bank from disk f0 system exclusive 18 E-mu id 02 EMAX id 10 exclusive #10 00 from bank # f7 EOX =>External device can tell EMAX to load bank from disk. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Get Voice f0 system exclusive 18 E-mu id 02 EMAX id 11 exclusive #11 pp from preset # (0 to 99) 0L from level: 0: primary 1: secondary 2: both LL low key # (0 to 87) hh hi key # (0 to 87) pp to preset # (0 to 99) 0L to level: 0: primary 1: secondary 2: both LL new low key # (0 to 87) f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Edit Assignment f0 system exclusive 18 E-mu id 02 EMAX id 12 exclusive #12 0L level: 0: primary 1: secondary kk key # (0 to 87) kk new original key # (0 to 87) LL new low key # (0 to 87) hh new hi key # (0 to 87) 0L new lo channel (0 to 15) 0h new hi channel (0 to 15) f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>Uses current preset. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Erase Voice(s) f0 system exclusive 18 E-mu id 02 EMAX id 13 exclusive #13 0L level: 0: primary
1: secondary 2: both LL lo key # (0 to 87) hh hi key # (0 to 87) f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>Uses current preset. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Crossfade Change f0 system exclusive 18 E-mu id 02 EMAX id 14 exclusive #14 LL lo key # (0 to 87) hh hi key # (0 to 87) 0d direction: 0: primary hard 1: secondary hard 0m crossfade mode: 0: off 1: velocity fade 2: velocity switch 3: positional 4: realtime fade 5: realtime switch f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>Uses current preset. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Create Preset f0 system exclusive 18 E-mu id 02 EMAX id 15 exclusive #15 pp preset # (0 to 99) f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>If preset already exists, it will be overwritten. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Erase Preset f0 system exclusive 18 E-mu id 02 EMAX id 16 exclusive #16 pp preset # (0 to 99) f7 EOX =>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>After finishing task, EMAX sends READY message.
................................................................................
Execute Copy Preset f0 system exclusive 18 E-mu id 02 EMAX id 17 exclusive #17 pp from preset # (0 to 99) pp to preset # (0 to 99) f7 EOX
=>This command duplicates front panel function. =>EMAX does no checks to see if data bytes are within legal range or not. =>EMAX will not allow the "to preset" to be the current preset. =>After finishing task, EMAX sends READY message.
................................................................................
Accept New Sample Fast f0 system exclusive 18 E-mu id 02 EMAX id 18 exclusive #18 LL low key # (0 to 87) hh hi 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) f7 EOX =>EMAX now switches internally to 500 kbaud. =>EMAX waits at least 100msec to allow sender to switch baud rates. =>EMAX then checks if dump will fit: if it won't fit: EMAX sends CANCEL and returns to 31.25 kbaud. if it will fit: EMAX sends ACK and continues. =>Sender starts high speed transfer by sending MMA-type data packet at 500kbaud: =>The sound data in the data packet is sent as 12 bit 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. =>Sender then waits for an ACK, as per MMA protocol: =>if EMAX detected transmission error, it sends NAK, expects re-send. EMAX will tolerate 5 re-sends before sending CANCEL and aborting. =>if packet received correctly, EMAX sends ACK, expects next packet. =>EMAX will handshake the last packet. =>After completion of transfer, EMAX automatically switches back to 31.25 kbaud. =>Receiver must wait at least 5 msec after receipt of EMAX's ACK of the last packet before sending another command to EMAX (at 31.25 kbaud). =>EMAX sets loop start points at the first byte, loop end points at the last byte, and sets all loops off. To change these, use exclusive #1c, "Change Sample Info". =>The "length" in the header refers to # of 12-bit data bytes, (80 per packet) not to the actual number of bytes in the packet, which is 120. =>EMAX does no checks to see if data bytes are within legal range or not. =>EMAX makes the sample's "original key" = hi key. =>For internal reasons, EMAX replaces the first two and the last two bytes of the sample dump with zeroes. Sender should also pad the ends with two zeroes and not use these bytes when looping sounds. =>Uses current preset.
................................................................................
Replace New Sample Fast f0 system exclusive 18 E-mu id 02 EMAX id 19 exclusive #19 kk key # (0 to 87) 0L level (0=primary, 1=secondary) f7 EOX =>EMAX now switches internally to 500 kbaud. =>EMAX waits at least 100msec, then sends ACK command (see MMA exclusives). =>EMAX then proceeds as Accept New Sample Fast (exclusive #18). =>EMAX replaces sound data, leaving intact all loop and length information. =>Uses current preset.
................................................................................
Change Voice Parameter f0 system exclusive 18 E-mu id 02 EMAX id 1a exclusive #1a LL low key (0 to 87) hh hi key (0 to 87) 0L level (0=pri, 1=sec, 2=both) pp voice parameter # (see list) vv voice parameter value f7 EOX =>Uses current preset. =>if key and level refer to a null voice, EMAX doesn't change anything. =>EMAX does no checks to see if parameter bytes are within legal range. =>After finishing task, EMAX sends READY message.
................................................................................
Change Preset Parameter f0 system exclusive 18 E-mu id 02 EMAX id 1b exclusive #1b pp preset# (0 to 99, or 127 for current preset) pp preset parameter # (see list) vv preset parameter value f7 EOX =>EMAX does no checks to see if parameter bytes are within legal range. =>After finishing task, EMAX sends READY message.
................................................................................
Change Sample Info f0 system exclusive 18 E-mu id 02 EMAX id 1c exclusive #1c kk key # (0 to 87) 0L level (0=primary, 1=secondary) 0s sample rate (0 to 7) 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 =>if key and level refer to a null voice, EMAX doesn't change anything. =>EMAX does no checks to see if parameter bytes are within legal range or not. =>Be aware that if sample rate is changed, the key assignments may no longer be valid due to transpose limitations. EMAX will not correct for this. =>After finishing task, EMAX sends READY message.
................................................................................
Erase All f0 system exclusive 18 E-mu id 02 EMAX id 1d exclusive #1d f7 EOX =>Erases all presets, sequences, sounds. Same as front panel option in "Master". =>After finishing task, EMAX sends READY message.
................................................................................
Change Current Preset f0 system exclusive 18 E-mu id 02 EMAX id 1e exclusive #1e pp preset # (0 to 99) f7 EOX =>Same as MIDI change preset, but bypasses omni/poly, midi on checks. =>If preset doesn't exist, nothing happens: current preset doesn't change. =>After finishing task, EMAX sends READY message.
................................................................................
Shorten Sample f0 system exclusive 18 E-mu id 02 EMAX id 1f exclusive #1f kk key # (0 to 87) 0L level (0=primary, 1=secondary) LL # bytes (bits 0-6) LL # bytes (bits 7-13) LL # bytes (bits 14-18) f7 EOX =>Uses current preset. =>The # of bytes specified is the # of bytes to shorten the sample by. =>if key and level refer to a null voice, EMAX doesn't shorten anything. =>EMAX assumes sample is at least as long as # of bytes to be shortened by. =>Loop end points are set to end of sample if shortened beyond original points. =>After finishing task, EMAX sends READY message.
................................................................................
Lengthen Sample f0 system exclusive 18 E-mu id 02 EMAX id 20 exclusive #20 kk key # (0 to 87) 0L level (0=primary, 1=secondary) LL # bytes (bits 0-6) LL # bytes (bits 7-13) LL # bytes (bits 14-18) f7 EOX =>Uses current preset. =>The # of bytes specified is the # of bytes to lengthen the sample by. =>if key and level refer to a null voice, EMAX doesn't lengthen anything. =>EMAX assumes there is enough memory in EMAX to accommodate lengthening.
=>Loop points remain unaffected. =>After finishing task, EMAX sends READY message.
................................................................................
Modify Time Out f0 system exclusive 18 E-mu id 02 EMAX id 21 exclusive #21 tt timeout in seconds (0 to 127) f7 EOX =>This sets the time EMAX waits for sample dump handshaking before timing out. =>EMAX defaults to a timeout of 4 seconds. =>Once changed, value will stay changed until modified by this command or until power is turned off. =>After finishing task, EMAX sends READY message.
................................................................................
Change Misc Info f0 system exclusive 18 E-mu id 02 EMAX id 22 exclusive #22 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 f7 EOX =>NOTE: due to a bug in EMAX Rev 3.0 software, master tune values of 0 to 15 (-48 cents to -3 cents) don't work properly. This should be fixed next rev. =>After finishing task, EMAX sends READY message.
................................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> RECEIVED MESSAGES: MMA Sample Dump Commands >>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< =>MMA stands for MIDI Manufacturer's Association. =>For more details on MMA exclusives, contact an MMA representative.
................................................................................
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) LL sample number (Pri/Sec 0 or 1) 0c significant bits 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 (ignored) f7 EOX =>Upon receiving this, EMAX will send a WAIT while it decides whether it will accept the sample dump or not. =>EMAX will only accept this sample dump if there is enough memory remaining to accommodate it, AND the current preset is not empty. Note: EMAX determines if it will fit by comparing length with amount of memory remaining. It does not take into account the fact that some samples may be erased and hence some memory freed up. =>If EMAX decides to accept, it will send an ACK, if not, it will send a CANCEL. =>EMAX places the sample at the specified key only (no transpose range is set). =>EMAX ignores loop type and uses forwards only always. =>EMAX rounds off sample period to its closest internal sample rate: 10, 15.625, 20, 22.05, 27.78, 31.25, 41.667, or 44.1 khz. =>For internal reasons, EMAX replaces the first two and the last two bytes of the sample dump with zeroes. Sender should also pad the ends with two zeroes and not use these bytes when looping sounds.
................................................................................
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 are packed according to the "significant bits" in the sample dump header. EMAX will configure itself accordingly.
................................................................................
Sample Dump Request f0 system exclusive 7e 0c midi base channel (0 to 15) 03 MMA exclusive number kk sample number (Key # 0 to 87)
LL sample number (Pri/Sec 0 or 1) f7 EOX
................................................................................
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
................................................................................
<<<<<<<<<<<<<<<<< >>> SUPERMODE <<< <<<<<<<<<<<<<<<<< "Supermode" is an EMAX MIDI mode designed to enhance the Sequencer/MIDI interface. It is basically equivalent to "Poly Mode On" for all 16 MIDI channels simultaneously. When Supermode is on, the OMNI/POLY setting is ignored, but the MIDI Notes/Wheels flag of the CURRENT PRESET is still checked by EMAX to determine whether to accept or ignore incoming MIDI performance data. EMAX's sequencer has 16 tracks, and each track has an independent preset assigned to it. These presets are referred to as "Sequencer Presets". The chart below shows the EMAX sound mapping:
----------------------
---FOR SUPERMODE ON---
---------------------­********************************************************************* SOURCE WHAT YOU WHAT THE WHAT IS HEAR SEQUENCER TRANSMITTED RECORDS OVER MIDI ********************************************************************* MIDI ch 1 seq preset 1 seq track 1 ch 2 seq preset 2 seq track 2
... ... ... (nothing)
ch 16 seq preset 16 seq track 16
--------------------------------------------------------------------­EMAX KEYBOARD current preset (nothing) current preset's basic channel
--------------------------------------------------------------------­SEQ track 1 seq preset 1 each track transmits track 2 seq preset 2 over basic channel
... ... (nothing) defined in its
track 16 seq preset 16 sequencer preset
---------------------------------------------------------------------
-----------------------
---FOR SUPERMODE OFF---
----------------------­********************************************************************* SOURCE WHAT YOU WHAT THE WHAT IS HEAR SEQUENCER TRANSMITTED RECORDS OVER MIDI ********************************************************************* MIDI ch 1-16 current preset single (nothing) (if it passes enabled omni/poly, track basic channel tests)
--------------------------------------------------------------------­EMAX KEYBOARD current preset single current preset's enabled basic channel track
--------------------------------------------------------------------­SEQ track 1 seq preset 1 each track transmits track 2 seq preset 2 over basic channel
... ... (nothing) defined in its
track 16 seq preset 16 sequencer preset
---------------------------------------------------------------------
<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> REALTIME CONTROLLERS <<< <<<<<<<<<<<<<<<<<<<<<<<<<<<< EMAX has 6 realtime sources: left wheel, right wheel, pressure, pedal, midiA, and midiB. These sources may be the on board controls, or coming in over MIDI, or both. EMAX has 9 realtime destinations: pitch, filter, level, lfo to pitch, lfo to filter, lfo to level, attack, pan, crossfade.
The chart below shows the affect of sources on destinations. "Initial" refers to the initial value of the EMAX destination.
***************************************************************************** SOURCE DESTINATION ------ EFFECT ON DESTINATION -------­ min center max ***************************************************************************** Left Wheel Pitch, initial-50% initial initial+50% Filter, Pan
.............................................................................
Left Wheel Level, initial initial initial+100% LFO->Pitch, LFO->Filter, LFO->Level, Attack, Crossfade ***************************************************************************** Right Wheel Pitch, initial initial initial+50% Pressure, Filter, Pedal, Pan MIDI A MIDI B
.............................................................................
Right Wheel Level, initial initial+50% initial+100% Pressure, LFO->Pitch, Pedal, LFO->Filter, MIDI A LFO->Level, MIDI B Attack, Crossfade
.............................................................................
<<<<<<<<<<<<<<<<<<<<<<<<<< >>> MIDI OVERFLOW MODE >>> <<<<<<<<<<<<<<<<<<<<<<<<<< When MIDI Overflow Mode is off, if all of EMAX's voices are being used and another key is pressed, EMAX "steals" the voice that has been playing the longest and uses that voice for the new note. When MIDI Overflow Mode is on, instead of "stealing" when it runs out of voices, EMAX will send any new notes out over MIDI. This way, another EMAX or an EMAX rack can play those extra notes, resulting in a total of 16 possible simultaneous notes instead of the 8 available with one EMAX. For this mode to be useful, a few things should be remembered:
(1) MIDI Overflow Mode only supports 2 EMAXs overflowed together, a "master" and a "slave".
(2) The "slave" must be another EMAX (or EMAX rack).
(3) Both EMAXs must be using the same bank.
(4) The "master" EMAX should be put in MIDI Overflow Mode, but the "slave" should not. (If both EMAXs were put in Overflow Mode, then the 17th note would not be played by either EMAX but instead the "slave" would send it out over MIDI.)
(5) While you CAN hook up 3 EMAXs master-slave1-slave2 and get a 24 note system, the problem is wheel information from the master only gets recognized by slave1 and is not echoed to slave2. For the same reason, one shouldn't expect to be able to hook up an external sequencer to drive 2 EMAXs in MIDI Overflow Mode. Instead, use two MIDI Outs from the sequencer and control the two EMAXs on separate MIDI channels.
RIGHT:
-----­ overflow (a) EMAX1 ----------> EMAX2 (overflow off)
(b) EXT. SEQUENCER ----------> EMAX1 |
-------> EMAX2
WRONG:
-----­ overflow overflow (c) EMAX1 ----------> EMAX2 ----------> EMAX3
overflow (d) EXT. SEQUENCER --------> EMAX1 ----------> EMAX2
Parameter# Parameter # of bits Value Range (Decimal)
56 Character #2 6 0 to 63 57 Character #3 6 0 to 63 58 Character #4 6 0 to 63 59 Character #5 6 0 to 63
Note: Characters #0 to #5 are not used by EMAX at all, and can be used by interfacing programs to name individual voices. To be compatible with each other, programs should add 32 to the 0 to 63 number to make an ASCII range of 32 to 95.
................................................................................
Preset Parameter List: (for use with exclusives #01 and #31)
Parameter# Parameter # of bits Value Range (Decimal)
---------- --------- ----------- ----------­0 Preset Name 1st letter 7 ASCII (=0 if preset empty) 1 --not used-­2 2nd letter 7 ASCII 3 --not used-­4 3rd letter 7 ASCII 5 --not used-­6 4th letter 7 ASCII 7 --not used-­8 5th letter 7 ASCII 9 --not used-­10 6th letter 7 ASCII 11 --not used-­12 7th letter 7 ASCII 13 --not used-­14 8th letter 7 ASCII 15 --not used-­16 9th letter 7 ASCII 17 --not used-­18 10th letter 7 ASCII 19 --not used-­20 11th letter 7 ASCII 21 --not used-­22 12th letter 7 ASCII 23 --not used-­24 Left Wheel Dest 4 0 to 9 25 Right Wheel Dest 4 0 to 9 26 Pressure Dest 4 0 to 9 27 Pedal Dest 4 0 to 9 28 MIDI Controller A Dest 4 0 to 9 29 MIDI Controller B Dest 4 0 to 9 Possible Controller Destinations: 0: off 1: pitch 2: filter freq 3: level 4: vibrato 5: filter vibrato 6: tremolo 7: attack 8: pan 9: crossfade 30 Footswitch #1 Dest 4 0 to 7 31 Footswitch #2 Dest 4 0 to 7 Possible Controller Destinations: 0: off 1: realtime arpeggiator footswitch 2: realtime sequencer control 3: realtime sustain 4: realtime release 5: realtime cross-switch 6: realtime advance preset 7: realtime sample control 32 MIDI Basic Channel 4 0 to 15 33 Omni/Poly 1:Omni 0:Poly 1 0 to 1 34 MIDI Enabled 1 0 to 1 1: All events
0: No notes or wheels 35 Preset Change Enabled 1 0 to 1 36 Local Control On 1 0 to 1 37 Seq Start/Stop Enabled 1 0 to 1 38 MIDI Port 1:Out 0:Thru 1 0 to 1 39 --not used-­40 MIDI Left Wheel Cntrlr 6 0 to 34 41 MIDI Right Wheel Cntrlr 6 0 to 34 42 MIDI Pressure 6 0 to 34 43 MIDI Pedal Controller 6 0 to 34 44 MIDI A input Controller 6 0 to 34 45 MIDI B input Controller 6 0 to 34 Possible Controllers: 0: off 1 to 32: midi controller # 33: pitch wheel 34: channel pressure
Arpeggiator Tempo is 16 bits: 4000 to 24000 46 Arpeggiator Tempo Lo 2 0 to 3 47 Arpeggiator Tempo Mid 7 0 to 127 48 Arpeggiator Tempo Hi 7 0 to 127
49 Arpeggiator Resolution 4 0 to 9 50 Arpeggiator Repeats 3 0 to 7 51 Arpeggiator On/Off 1 0 to 1 52 Arpeggiator Mode 3 0 to 5 Possible Arpeggiator Modes: 0: up 1: down 2: up/down 3: forward assignment 4: backward assignment 5: random 53 Arpeggiator Latch Mode 2 0 to 2 0: offlatch 1: autolatch 2: extendlatch 54 Cruz Control 1 0 to 1 55 Arpeggiator Glissando 1 0 to 1 56 Arpeggiator Interval 4 0 to 15 57 Arpeggiator Extensions 4 0 to 15 58 Arpeggiator Velocity 7 0 to 127 59 Arpeggiator Hi Key 7 0 to 87 60 Arpeggiator Lo Key 7 0 to 87 61 Pitch Wheel Range 3 1 to 4 0: invalid 1: +- 1 semitone 2: +- 2 semitones 3: +- 3 semitones 4: +- 4 semitones 62 --not used-­63 --not used-­64 Velocity Curve 4 0 to 13 65 --not used-­66 --not used-­67 Arpeggiator Harmony1 4 0 to 15 68 Arpeggiator Harmony2 4 0 to 15
Loading...