Matrix-1000 =================== Note that 07H - SET GROUP MODE differs from the Matrix6/6R (May contain errors) Recognized Messages: Channel voice messages: STATUS DATA BYTES DESCRIPTION ------- ---------- ----------- 1000 xxxx 0nnn nnnn Note off 0vvv vvvv (Release Velocity= 1-127) 1001 xxxx 0nnn nnnn Note on 0vvv vvvv (Velocity= 1-127,0=Note off) 1011 xxxx 0ccc cccc Controller change 0nnn nnnn Any controller 0-121 can be used; 7 bits only 1100 xxxx 0nnn nnnn Program select 1110 xxxx 0000 000n Pitch bend (LSB) 0nnn nnnn Pitch bend (MSB) ------------------------------------------------------------------------------- CHANNEL CODE MESSAGES : 1011 xxxx 79H Reset all controllers 00H 1011 xxxx 7BH All notes off 00H 1011 xxxx 7CH OMNI mode off 00H 1011 xxxx 7DH OMNI mode on 0HH (OMNI mode is assumed off in MONO on) 1011 xxxx 7EH MONO mode on 06H 1011 xxxx 7FH MONO mode off 00H ------------------------------------------------------------------------------- SYSTEM COMMON MESSAGES : 1111 0000 10H System exclusive-Oberheim ID 06H Matrix-6/6R/1000 Device ID 0F7H End of system exclusive 1111 0111 End of system exclusive SYSTEM REAL TIME MESSAGES : 1111 1110 Active Sensing ------------------------------------------------------------------------------- Matrix-1000 SYSTEM EXCLUSIVE DATA FORMAT : - All "data" in patch and parameter dumps is unpacked for transmission. The general algorithm for transmission is: 1: Transmit header and messages code(s). 2: Clear checksum. 3. Fetch next data byte to be transmitted. 4: Add byte to checksum. 5: Transmit (data & 0FH). 6: Transmit (data/16 & 0FH). 7: Repeat 3-6 for all data bytes. 8: Transmit (checksum & 07FH). 9: Transmit F7H. ------------------------------------------------------------------------------- 01H-SINGLE PATCH DATA F0H 10H 06H 01H F7H = Destination patch number (0-99) = Patch data unpacked to two nibbles per byte - see patch format listing = sum of packed (NOT transmitted) NOTE: On receipt, this data will be stored into the specified patch location in the current bank. If this patch ic currently selected in the M-100, the newly stored sound will be recalled into the edit buffer. NOTE: A gap of at least ten msec should be allowed between patches when sending multiple patches to the M-1000. ------------------------------------------------------------------------------- 03H - MASTER PARAMETER DATA F0H 10H 06H 03H F7H = 03H for M-1000 = master data unpacked to two nibbles per byte - see master parameter format listing = checksum of packed ------------------------------------------------------------------------------- 04H - REQUEST DATA F0H 10H 06H 04H F7H = 0 to request all patches in current bank and master parameters. = 0 when = 0 or 3 = Number of patch requested when =1 NOTE: When all patches are requested, 100 patches from the current bank are transmitted in ascending orde using individual Single Patch messages (code 01 above). This is followed by 50 dummy "split" patches for compatibility with the "Requested All" function of the Matrix-6. Each of this splits has the form F0H 10H 06H 02H <36 bytes of data> F7H. For further information on this format, see the Matrix-6 MIDI Specification. All patches are transmitted with ten msec between patches. ------------------------------------------------------------------------------- 06H - REMOTE PARAMETER EDIT F0H 10H 06H 06H F7H = Matrix-1000 parameter number (see patch format) 0-99 = the value to which that parameter should be set. NOTE: All values are sign extended from bit 6 into bit 7 except for parameter 121 (VCF frequency). Range checking should be done on the value of each parameter BEFORE it is sent. ------------------------------------------------------------------------------- 07H - SET GROUP MODE F0H 10H 06H 07H F7H = Total number of units in group (2-6) = 0 to set yhe first unit to be the master 1-5 to set the unit to be a slave. NOTE: The value recieved for is used as the unit ID for certain SYSEX messages. It is also accessable from the front panel as extended function 5. NOTE: On receipt of this message, the unit enters group mode with its unit number set to . It then re-transmits this message with th ID incremented. ------------------------------------------------------------------------------- 0AH - SET BANK F0H 10H 06H 0AH F7H = bank number to select(0-9). NOTE: On receipt of this message, the unit will change banks and enable the bank lock. ------------------------------------------------------------------------------- 0BH- REMOTE PARAMETER EDIT F0H 10H 06H 0BH F7H = Matrix Modulation path number (0-9). = 0 to delete this path = 1-20 to specify modulation source (see table 2). = Modulation amount = 0 to delete this path = 1-32 to specify modulation destination (table 3). NOTE: The value is sign extended from bit 6 into bit 7. Range checking should be done on all data BEFORE it is sent. ------------------------------------------------------------------------------- 0CH - UNLOCK BANK F0H 10H 06H 0CH F7H On receipt of this message, Bank Lock will be disabled. ------------------------------------------------------------------------------- 0DH - SINGLE PATCH DATA TO EDIT BUFFER F0H 10H 06H 0DH 0 F7H = patch dataa unpacked to two nibbles per byte -see patch format listing = sum of packed (NOT transmitted) NOTE: On receipt, this data will be stored into the edit buffer. NOTE: Wait at least ten msec after sending a patch to the Matrix-1000. ------------------------------------------------------------------------------- 0EH - STORE EDIT BUFFER F0H 10H 06H 0EH F7H = patch number within bank (0-99). = Bank number (0-9) = 0 if Group Mode is off = Unit ID for target M-1000 in Group Mode. = 7FH for any unit in Group Mode. = 268 nybbles transmitted + 5 bytes Header + 1 byte ----------------------------------------------------------------------------------- MATRIX-1000 SINGLE PATCH DATA FORMAT Statistics: 134 Bytes/Single Patch Checksum : + 1 byte EOX = 275 total transmitted bytes/Single Patch Byte Parameter # Bits Description ----- --------- ------ ----------- 0-7 6 each Patch name. Each character is represented by the lower 6 bits of it's ASCII representation. 8 48 2 Keyboard mode 0=Reassign 1=Rotate 2=Unison 3=Reassign w/Rob 9 00 6 DCO 1 Initial Frequency LSB=1 Semitone 10 05 6 DCO 1 Initial Wavwshape 0=Sawtooth 31=Triangle 11 03 6 DCO 1 Initial Pulse width 12 07 2 DCO 1 Fixed Modulations Bit 0=Lever 1 Bit 1=Vibrato 13 06 2 DCO 1 Waveform Enable Bit 0=Pulse Bit 1=Wave 14 10 6 DCO 2 Initial Frequency LSB=1 Semitone 15 15 6 DCO 2 Initial Wavwshape 0=Sawtooth 31=Triangle 16 13 6 DCO 2 Initial Pulse width 17 17 2 DCO 2 Fixed Modulations Bit 0=Lever 1 Bit 1=Vibrato 18 16 3 DCO 1 Waveform Enable Bit 0=Pulse Bit 1=Wave Bit 2=Noise 19 12 6(signed) DCO 2 Detune 20 20 6 Mix 21 08 2 DCO 1 Fixed Modulations Bit 0=Portamento Bit 1=Not used 22 09 1 DCO 1 Click 23 18 2 DCO 2 Fixed Modulations Bit 0=Portamento Bit 1=Keyboard Tracking enable 24 19 1 DCO 2 Click 25 02 2 DCO Sync mode 26 21 7 VCF Initial Frequency LSB= 1 Semitone 27 24 6 VCF Initial Resonance 28 25 2 VCF Fixed Modulations Bit 0=Lever 1 Bit 1=Vibrato 29 26 2 VCF Keyboard Modulation Bit 0=Portamento Bit 1=Keyboard 30 30 6 VCF FM Initial Amount 31 27 6 VCA 1 (exponential) Initial Amount 32 44 6 Portamento Initial Rate 33 46 2 Lag Mode 0=Constant Speed 1=Constant Time 2=Exponential 3=Exponential 34 47 1 Legato Portamento Enable 35 80 6 LFO 1 Initial Speed 36 86 2 LFO 1 Trigger 0=No Trigger 1=Single Trigger 2=Multi Trigger 3=External Trigger 37 87 1 LFO 1 Lag Enable 38 82 3 LFO 1 Waveshape (see table 1) 39 83 5 LFO 1 Retrigger point 40 88 5 LFO 1 Sampled Source Number 41 84 6 LFO 1 Initial Amplitude 42 90 6 LFO 1 Initial Speed 43 96 2 LFO 2 Trigger 0=No Trigger 1=Single Trigger 2=Multi Trigger 3=External Trigger 44 97 1 LFO 2 Lag Enable 45 92 3 LFO 2 Waveshape (see table 1) 46 93 5 LFO 2 Retrigger point 47 98 5 LFO 2 Sampled Source Number 48 94 6 LFO 2 Initial Amplitude 49 57 3 Env 1 Trigger Mode Bit0=Reset Bit1=Multi Trigger Bit2=External Trigger 50 50 6 Env 1 Initial Delay Time 51 51 6 Env 1 Initial Attack Time 52 52 6 Env 1 Initial Decay Time 53 53 6 Env 1 Sustain Level 54 54 6 Env 1 Initial Release Time 55 55 6 Env 1 Initial Amplitude 56 59 2 Env 1 LFO Trigger Mode Bit0=Gated Bit1=LFO Trigger 57 58 2 Env 1 Mode Bit0=DADR Mode Bit1=Freerun 58 67 3 Env 2 Trigger Mode Bit0=Reset Bit1=Multi Trigger Bit2=External Trigger 59 60 6 Env 2 Initial Delay Time 60 61 6 Env 2 Initial Attack Time 61 62 6 Env 2 Initial Decay Time 62 63 6 Env 2 Sustain Level 63 64 6 Env 2 Initial Release Time 64 65 6 Env 2 Initial Amplitude 65 69 2 Env 2 LFO Trigger Mode Bit0=Gated Bit1=LFO Trigger 66 68 2 Env 2 Mode Bit0=DADR Mode Bit1=Freerun 67 77 3 Env 3 Trigger Mode Bit0=Reset Bit1=Multi Trigger Bit2=External Trigger 68 70 6 Env 3 Initial Delay Time 69 71 6 Env 3 Initial Attack Time 70 72 6 Env 3 Initial Decay Time 71 73 6 Env 3 Sustain Level 72 74 6 Env 3 Initial Release Time 73 75 6 Env 3 Initial Amplitude 74 79 2 Env 3 LFO Trigger Mode Bit0=Gated Bit1=LFO Trigger 75 78 2 Env 3 Mode Bit0=DADR Mode Bit1=Freerun 76 33 5 Tracking Generator Input Source Code (See Table 2) 77 34 6 Tracking Point 1 78 35 6 Tracking Point 2 79 36 6 Tracking Point 3 80 37 6 Tracking Point 4 81 38 6 Tracking Point 5 82 40 6 Ramp 1 Rate 83 41 2 Ramp 1 Mode 0=Single Trigger 1=Multi Trigger 2=External Trigger 3=External Gated 84 42 6 Ramp 2 Rate 85 43 2 Ramp 2 Mode 0=Single Trigger 1=Multi Trigger 2=External Trigger 3=External Gated 86 01 7(signed) DCO 1 Freq. by LFO 1 Amount 87 04 7(signed) DCO 1 PW by LFO 2 Amount 88 11 7(signed) DCO 2 Freq. by LFO 1 Amount 89 14 7(signed) DCO 2 PW by LFO 2 Amount 90 22 7(signed) VCF Freq. by Env 1 Amount 91 23 7(signed) VCF Freq. by Pressure Amount 92 28 7(signed) VCA 1 by Velocity Amount 93 29 7(signed) VCA 2 by Env 2 Amount 94 56 7(signed) Env 1 Amplitude by Velovity Amount 95 66 7(signed) Env 2 Amplitude by Velovity Amount 96 76 7(signed) Env 3 Amplitude by Velovity Amount 97 85 7(signed) LFO 1 Amp. by Ramp 1 Amount 98 95 7(signed) LFO 2 Amp. by Ramp 2 Amount 99 45 7(signed) Portamento rate by Velocity Amount 100 31 7(signed) VCF FM Amount by Env 3 Amount 101 32 7(signed) VCF FM Amount by Pressure Amount 102 81 7(signed) LFO 1 Speed by Pressure Amount 103 91 7(signed) LFO 2 Speed by Keyboard Amount 104 5 Matrix Modulation Bus 0 Source Code (See Table 2) 105 7(signed) MM Bus 0 Amount 106 5 MM Bus 0 Destination Code (See Table 3) 107 5 Matrix Modulation Bus 1 Source Code (See Table 2) 108 7(signed) MM Bus 1 Amount 109 5 MM Bus 1 Destination Code (See Table 3) 110 5 Matrix Modulation Bus 2 Source Code (See Table 2) 111 7(signed) MM Bus 2 Amount 112 5 MM Bus 2 Destination Code (See Table 3) 113 5 Matrix Modulation Bus 3 Source Code (See Table 2) 114 7(signed) MM Bus 3 Amount 115 5 MM Bus 3 Destination Code (See Table 3) 116 5 Matrix Modulation Bus 4 Source Code (See Table 2) 117 7(signed) MM Bus 4 Amount 118 5 MM Bus 4 Destination Code (See Table 3) 119 5 Matrix Modulation Bus 5 Source Code (See Table 2) 120 7(signed) MM Bus 5 Amount 121 5 MM Bus 5 Destination Code (See Table 3) 122 5 Matrix Modulation Bus 6 Source Code (See Table 2) 123 7(signed) MM Bus 6 Amount 124 5 MM Bus 6 Destination Code (See Table 3) 125 5 Matrix Modulation Bus 7 Source Code (See Table 2) 126 7(signed) MM Bus 7 Amount 127 5 MM Bus 7 Destination Code (See Table 3) 128 5 Matrix Modulation Bus 8 Source Code (See Table 2) 129 7(signed) MM Bus 8 Amount 130 5 MM Bus 8 Destination Code (See Table 3) 131 5 Matrix Modulation Bus 9 Source Code (See Table 2) 132 7(signed) MM Bus 9 Amount 133 5 MM Bus 9 Destination Code (See Table 3) ----------------------------------------------------------------------------------- TABLE 1 ----------------- LFO Wave codes 0= Triangle 4=Ramdom 1= Up Sawtooth 5=Noise 2= Down Sawtooth 6=Sampled Modulation 3= Square 7=Not Used ----------------------------------------------------------------------------------- TABLE 2 ------------------ MODULATION SOURCE CODES TRACKING GENERATOR INPUTS Unused modulations must have their Sources and Destinations set to 0. 0=Unused Modulation* 1=Env 1 11=Tracking Generator 2=Env 2 12=Keyboard Gate 3=Env 3 13=Velocity 4=LFO 1 14=Release Velocity 5=LFO 2 15=Pressure 6=Vibrato 16=Pedal 1 7=Ramp 1 17=Pedal 2 8=Ramp 2 18=Lever 1 9=Keyboard 19=Lever 2 10=Portamento 20=Lever 3 * The "0=Unused Modulation" parameter in this Table is found in the Modulation Source list only. This parameter is not a Tracking Generator input and thus will not be displayed in parameter 33 TRACK INPUT. ----------------------------------------------------------------------------------- TABLE 3 ----------------- MODULATION DESTINATION CODES Unused Modulations must have their Sources and Destinations set to 0. 1=DCO 1 Frequency 17=Env 1 Amplitude 2=DCO 1 Pulse Width 18=Env 2 Delay 3=DCO 1 Waveshape 19=Env 2 Attack 4=DCO 2 Frequency 20=Env 2 Decay 5=DCO 2 Pulse Width 21=Env 2 Release 6=DCO 2 Waveshape 22=Env 2 Amplitude 7=Mix Level 23=Env 3 Delay 8=VCF FM Amount 24=Env 3 Attack 9=VCF Frequency 25=Env 3 Decay 10=VCF Resonance 26=Env 3 Release 11=VCA 1 Level 27=Env 3 Amplitude 12=VCA 2 Level 28=LFO 1 Speed 13=Env 1 Delay 29=LFO 1 Amplitude 14=Env 1 Attack 30=LFO 2 Speed 15=Env 1 Decay 31=LFO 2 Amplitude 16=Env 1 Release 32=Portamento Time ----------------------------------------------------------------------------------- MATRIX-1000 GLOBAL PARAMETERS DATA FORMAT ------------------------------------------- Statistics: 172 bytes/Global Parameters = 344 nybbles transmitted + 5 bytes Header + 1 byte Checksum + 1 byte EOX = 351 total transmitted bytes/Global parameters Byte # Bits Description ------ ------- ------------ 0 Not Used 1 6 Vibrato Speed 2 2 Vibrato Speed Mod Source Code 3 6 Vibrato Speed Modulation Amount 4 3 Vibrato Waveform 5 6 Vibrato Amplitude 6 2 Vibrato Amp Mod SOurce Code 7 6 Vibrato Amp Modulation Amount 8 6(signed) Master Tune 9 Not Used 10 Not Used 11 4 MIDI Basic Channel 12 1 MIDI OMNI Mode Enable 13 1 MIDI Controllers enable 14 1 MIDI Patch Changes Enable 15 Not Used 16 Not Used 17 7 MIDI Pedal 1 Controller 18 7 MIDI Pedal 2 Controller 19 7 MIDI Lever 2 Controller 20 7 MIDI Lever 3 Controller 21-31 Not Used 32 1 MIDI Echo Enable 34 6(signed) Master Transpose 35 1 MIDI Mono Mode Enable 36-161 1 each Group Enables (One bit per patch, LS bit first) 162-163 Not Used 164 1 Bend Range 165 1 Bank Lock Enable (In MSB only) 167 1 Number of Units (Group Mode) 168 1 Current Unit Number (In MSB only) 169 1 Unison Enable 170 1 Volume Invert Enable 171 1 Memory Protect Enable ----------------------------------------------------------------------------------- MISCELLANEOUS MATRIX-1000 COMMANDS ------------------------------------ BANK SELECT F0H 7FH 02H 01H F7H =7FH for all devices (including this one) =(0-5) must match unit's ID =Don't Care =Don't Care =Don't Care =Don't Care =Bank to select(0-9) =0 DEVICE INQUIRY F0H 7EH 06H 01H F7H =7FH for any device (including this one) =(0-15) must match unit's basic channel DEVICE ID F0H 7EH 06H 02H F7H =Transmitting device's Basic Channel =10H (Oberheim) =6H (Matrix-6/6R/1000 =0H =2H (Matrix-1000) =0H thru =Four ASCII Characters of the version number, right justified. E.g., version 1.10 is represented by: =20H("") =31H("1") =31H("1") =31H("0") ACTIVE CONTROLLERS 01 Vibrato Amount (Lever 2) 02 Breath Control (Lever 3) 04 Foot Pedal (Pedal 1) 06 Data Entry 07 Volume 08 Bank Change Enable 64 Sustain (Pedal 2) 96 Increment 97 Decrement 98 Non-Reg Parm LSB 99 Non-Reg Parm MSB 100 Reg Parm LSB 101 Reg Parm MSB Registered Parameters 00 Pitch Bend Range (in semitones) 01 Fine Tune (in 128ths of a semitone) 02 Transpose (in semitones) Non-registered parameters may be used to control any parameter by using the front panel parameter number. Matrix modulations must be controlled by use of the System Exclusive message. When using registered or non-registered parameter editing, all recieved data entry controller values are offset by 40H, except when the currently selected parameter is the registered pitch bend range. Thus, a data entry value of 40H will update the selected parameter to be 0, while 3EH is interpreted as -2. This allows for transmission of negative numbers.