oberheim     matrix-1000


general info

midi spec

firmware notes

hardware notes











Note/Issue   Comment/Explanation
SysEx dump does not include proper patch names. Even patches sent to M-1000 from M-6 are returned with 'garbled' patch names (eg. BNK1: 23).   Matrix-1000 crams 800 patches into 64K of ROM (obviously due to cost of memory back in 1988). This leaves slightly less than 82 bytes for a single patch that consists of 134 bytes so everything had to be packed and still there was no space for patch names. The same applies to 200 RAM patches.
Sysex command 07H - Set Group Mode does not work.   Contrary to what the manual says, Sysex command 07H - Set Group Mode is not processed in firmware. Instead, there are two undocumented commands 08H - Set Group Mode and 09 - Clear Group Mode (see updated MIDI Spec).
Vibrato Speed (as well as most of the Global Parameters) cannot be set by MIDI.   There is no appropriate MIDI SysEx command to set Global Parameters. Some of them can be edited via other MIDI commands, eg. Omni Mode, Mono Mode, Master Tune, Master Transpose. Group Mode/Units can be edited by (undocumented) SysEx commands 08H and 09H (see updated MIDI Spec).
Sustain Level of Envelope 1 is impossible to set by MIDI (SysEx Remote Parameter Edit command).   Bug in firmware. Pointer to parameter 53 (Env1 Sustain Level) handler incorrectly points to parameter 65 (Env2 Initial Amplitude) handler. Therefore editing Env1 Sustain Level actually changes Env2 Initial Amplitude. 
Envelope 2 to VCA 2 (parameter 29) cannot be set individually but only sending the entire set of patch data.   Another bug. ENV2 by VCA2 parameter change is (incorrectly) handled by VCA2 Volume handler. While sending the full patch the right one gets triggered as well among others. There's a problem with VCA1 Initial Amount as well...
VCF Frequency (parameter 21) update is much more sluggish than in case of the rest of parameters.   Matrix-1000 modulation mechanism was clearly not designed with live environment in mind. Each change in a parameter triggers full rebuild of the whole modulation path. In some cases it just becomes too much for the CPU to handle.
Although not documented in MIDI specification, Channel Pressure messages are actually handled in Matrix-1000 MIDI code.   The code processing Channel Pressure messages in Matrix-1000 is equivalent to that of Matrix-6 so this should work exactly the same way although I don't have a M-6 to test this (see updated MIDI Spec).
Nobody seems to be able to get NRPN work on Matrix-1000.   And for a good reason: NRPN is not properly implemented. Looks like somebody started coding it and then had to quit in a hurry...
Matrix-6 has the 51 PATCH INITIALIZE command to recall the Basic Patch. Does Matrix-1000 provide a similar feature?   M-1000 actually has exactly the same Basic Patch stored in system ROM. Apart from M-6 the only way to recall it is during system reinitialization (Power-On holding the Enter button). Although Patch 000 is displayed, the active patch is the Basic Patch ('test tone' as stated in M-1000 manual).
How do I reset the Matrix-1000? What happens during reinitialization?   M-1000 retains its internal variables, Global Parameters and all the contents of internal memory during Power-Off in battery backed-up RAM. If the need arises to clean up these settings and restore everything to factory defaults it can be done by holding Enter button while switching on the power. In addition to restoring factory settings and resetting all parameters and controllers, Calibration routine is invoked and Basic Patch is set up as active patch. NB! Reinitialization does not affect User Patches (000 - 199). 
Reinitialization takes too long - is it possible to speed it up?   Reinitiaization of M-1000 takes about 40 sec which btw starts counting the moment when the Enter button is released. Most of this time is spent in Calibration routine (the same one invoked by Test Mode, function 0) which takes about 30 sec. It is possible to bypass Calibration by pressing Minus (-) button immediately after releasing Enter (or, even better, pressing Minus and then releasing Enter). Thus reinitialization process takes less than 10 sec. The Basic Patch is not recalled during this 'fast' reinitialization, however.  
What does the number 111 displayed shortly during Power-On stand for?   111 (or any other number) displayed shortly during Power-On (or a lot longer during reinitialization) denotes the version of the firmware. As far as I know 1.11 is the latest version that exists. Alternatively, Device ID MIDI command can be used to query the firmware version.
Sometimes there are decimal dots lighted up on LED display.   The leftmost decimal dot lights up when the Bank Lock is activated. The next one means M-1000 is in Group Mode and more than one Matrixes are linked together. The rightmost dot lights up any time when at least one note is playing. MIDI messges other than Note On and Note Off do not affect this dot.
What is Test Mode (Extended Function 7)?   M-1000 has 3 documented test functions. Test 0 invokes Calibration routines that take about 20-30 sec. Test 1 switches M-1000 to Voice Display mode (number of highest gated CEM3396 is displayed - counting from right to left on the circuit board). Test 2 (DAC Zero) sends value 0 to DAC. This is used for DAC calibration by measuring TP9 and adjusting VR701 to 0V.  
Extended Function 7 (Test Mode) has an undocumented test function 3.   Test function 3 is similar to function 2 (DAC Zero). In case of function 3 the value written to DAC is hex 7FF8 which denotes all 12 bits high enabling measurement of maximum DAC output. My board shows 5.43V at TP9. (Thanks for the tip, Godric!).
There's an 'easter egg' hidden in the firmware. Holding buttons 2, 5 and 9 during powerup displays letters JSL on panel display. These refer to one of Oberheim developers, James S. Letts as confirmed by Paul J. White (another Oberheim developer).  

Any comments/suggestions/complaints/corrections? Pls forward them to me.