Newest version: V2.15, June 2017. 16-bit checksum of PROM is 23EB. Sold with permission and under licence of the author.
Installation instructions and documentation.
[toc]
TL;DR – How to upgrade
- Works with keyboard (Matrix-6) and rack (Matrix-6R) version
- Backup all patches in RAM memory, just to be safe
- Disconnect synth from power and open it up
- Insert firmware IC in socket U5. Take care not to bend any of the chips, and to insert it the right way round – there is a little notch in the chip which needs to face towards the same direction as with the neighboring chips.
- If you upgraded from a very early version like v1.05, it might be necessary to press and hold the red STORE button while switching on, thereby initialising the machine.
What’s different?
The new firmware differs from the V2.13 factory firmware in these respects:
- Fast control response: Smooth, musical control of the most-used parameters – the handling of 20 frequently-used parameters is speeded up to real-time. No stepping, no freezing.
- MIDI control of parameters 29 (ENV2 to VCA) fixed.
- New System Exclusive Enable Master parameter settings – enabling you to set your modulations to negative values with an external controller (see next point): In addition to the SysEx Enable=1 value, you can set this parameter to 2 – for the (rare) MIDI controller boxes capable fo sending negative values, or to 3 – for standard MIDI controllers.
- Bug-fixed MIDI control of modulation parameters: Did you realize that your Matrix-6 never took negative modulation values for, say, LFO2 to PWM (parameter #4) via MIDI? Now, by setting the SysEx Enable Master parameter to 3 (see above), you can use sending any MIDI fader generating values from 0 to 127: The halfway position is interpreted as the zero point, positions below are negative, positions above are positive values.
- See “How it works” section for list of speeded-up parameters.
- See FAQ.
Why you needed to buy a chip – and why you need to open the synth
The program running the Matrix-6 synthesizer is called its firmware. On switching on, the Matrix tells you the version ofthe firmware is by displaying the three-digit version number. The last factory version was V2.13/a. The factory firmware contains a couple of bugs though – see the “What’s different?” section of this documentation.
The new firmware is delivered in an old-fashioned chip called an EPROM – an acronym meaning “Electically Programmable Read-Only Memory”. At the time when the Matrix was built, this was the method of choice to store a machine’s operating system. It holds 32KB of data – a millionth of what a 32GB memory stick stores these days. The data it holds has to be written with a special device called a PROMMER. And it can only be erased to be rewritten by hitting the microchip with high-powered ultra-violet rays (No need for you to do that.)
Putting the new firmware into the old machine
Use a patch manager/MIDI editor to back up your presets, just to be safe.
Disconnect the Matrix module from mains. Remove casing screws and open up the upper panel. The chip you need to replace sits in a socket named U5.
Wedge the blade of a small knife or screwdriver in between the chip and the socket. Rock it gently to loosen the chip and remove it. Take the new chip with the firmware from the box. Make sure it is the right way round – there is a small notch on the IC which has to face upward, away from the synth’s front panel, just like the one next to it.
Be careful: It is quite easy to bend one of the pins by accident. Before using pressure to insert the new chip into the socket, make sure that all its pins are sitting correctly – it is best to insert one row of pins first and then bend them gently by putting some pressure on the opposite edge of the chip until the other row can be inserted into their holes.
If one pin is bent and folded off rather than sitting in the socket, chances are that the synth won’t work – you will have to remove the chip, carefully straighten the bent pin and try again.
When the chip is sitting in its socket, connect the synth to mains and power it up.
If you are upgrading a Matrix 6 keyboard from an early version of the firmware, such as V1.05, rather than V2.13, you may need to perform an “initialization” after changing the EPROM to get the synthesizer to boot properly. Press and hold the red STORE button while powering up the keyboard to do this. Also, Tune and Calibrate afterwards.
Speeding up old hardware – how does it work?
In the Matrix, like in many MIDI-controlled analog synths, voice Modulation is done in software. Every 20ms, the synth recalculates the two LFOs, the three envelopes, the two ramps, and all the modulations via direct controls and via the name-giving modulation matrix, for all the six voices of the synth. Then, the control voltages for the analog circuits are updates by the computer.
The problem is that this complex synth engine is keeping the old hardware quite busy – hardware that is running with a fraction of modern processing power. Modulation values are pre-calculated, and every time a parameter is changed, these calculations have to be redone. This takes time, so parameter changes tend to stack up and freeze the synth. You may think of the firmware as a very thorough office clerk processing your request – Form 24, VCF Resonance Adjustment Application – and while he is working, new requests stack up on his desk, while you are waiting. You know how that will make you feel.
In 2014, a French hacker called Gligli came up with a simple but elegant hack for the Matrix 6’s younger brother the Matrix-1000. This hack makes the Matrix responsible by telling the clerk to take the top request form from his desk, and throw the others away. As turning a parameter control produces a lot more requests than you’d actually need, this is fine, although it may make parameter values jumpy. (See GliGli’s homepage)
The new Tauntek.com firmware uses a different approach: it replaces the clerk with a trained specialist that can handle the most common requests a lot faster. They can be processed in real time and won’t block his desk. This is done with clever optimization of code that was written by very clever programmers in the first place, so you will realize that this was no small feat. More details can be found on the pages of the software’s author, Bob Grieb.
This allows for real-time manipulation of sound, beyond the limits of the modulation matrix. And there is no stepping – these parameters are now processed with the highest possible resolution of 20ms:
- 1 DCO1 Freq by LFO1 amt
- 3 DCO1 Init PW
- 4 DCO1 PW by LFO2 amt
- 7 DCO1 Fixed Mods
- 9 DCO1 Click
- 11 DCO2 Freq by LFO1 amt
- 13 DCO2 Init PW
- 14 DCO2 PW by LFO2 amt
- 17 DCO2 Fixed Mods
- 19 DCO2 Click
- 21 VCF Init Freq
- 22 VCF Freq by Env 1 amt
- 23 VCF Freq by pressure amt
- 24 VCF Init Resonance
- 25 VCF Fixed Mods
- 27 VCA 1 Init Amt
- 28 VCA 1 by Vel amt
- 30 VCF FM Init amt
- 31 VCF FM amt by Env 3 amt
- 32 VCF FM amt by Pressure amt
Here is a full list of all Matrix parameters, with their number and range (PDF).
Other parameters might still lag, and changing the mod matrix will always take a moment for the synth to process – but this sounds worse than it actually is. The firmware allows for a very musical control of the sound – smooth real-time control will work just like you would expect it.
By the way: there are some software editors that circumvent the Matrix’ limitations by implementing a version of Gligli’s trick – namely, only sending the last value of any parameter that you change. This means that you cannot use these programs for smooth real-time control of the Matrix’s parameters.
FAQ
- Does the firmware update work with rack and keyboard versions of the Matrix-6? Yes, it does. To quote from Bob Grieb’s info file: “This is my latest and greatest code for the Oberheim Matrix Six. This same image should work on both the 6R and the Matrix 6. It includes the dead band code from 2.13a when running in a Matrix 6.” (And yes: I am aware that Oberheim made two different ROM versions – 2.13 for the expander, and 2.13a for the keyboard.)
- What are the new settings of the “System Exclusive Enable” Master parameter for? I don’t quite understand the difference between modes 2 and 3. And what do I need them for in the first place – This is due to the fact that MIDI is supposed to transmit only positive values, but modulation parameters in the Matrix – let’s look at Parameter #4, LFO2 to DCO1 PWM – can take a negative value as well. (For an in-depth discussion of negative values via MIDI see the M1000 info page, where using NRPN suffers from the same problem.) So the original ROM by Oberheim just ignored them – you can still replicate this behaviour by setting “SysEx Enable” to 1. Setting it to 3 is the normal setting for use with a Sysex-capable faderbox like the PC1600, the Behringer BCR2000, or the Novation X-Station – it interprets fader values from 0-63 as negative (with 0 s the most extreme negative value), 64 as zero point, and 65-127 as positive (with 127 as the highest value). Mode 2 is for MIDI controllers that generate correct negative “2s complement” values – don’t ask, just try which works best for you and your control.
- Can you control the mod matrix via MIDI now, like you can do it on the Matrix-1000? – Unfortunately not. The code was not implemented in the Matrix-6, and other than with the Matrix-1000, the code memory is rather packed, so there is hardly any room to backport the code from the newer machine.
- I’d like to have this killer feature implemented in the firmware. Are you going to do it? – Most possibly not. There are so many more interesting old machines in need of repair and improvement, and the Matrix project is pretty much wrapped up. But you never know.
- Does the Matrix-6 now feature NRPN control of parameters? – No, this is limited to the Matrix-1000 update due to lack of space in the ROM.
- Could you backport the Unison Detune feature from the more recent Matrix-1000 firmwares? – One could, but (a) see above, and (b) it would not be that much of a gain for the Matrix-6. While in the M-1000, all oscillators are derived from the same digital frequency, making the DCOs run in perfect sync without a detune feature, on the M-6 the oscillator frequencies are taken from three different analog high-frequency oscillator circuits, making them drift ever so slightly, so unison should feature exactly the slight detune effect that the Detune feature is trying to emulate.
- I’ve changed the EPROM but the synth does not work correctly. What went wrong? – Don’t panic. Try initialising the synth by pressing and holding the red STORE button while switching on.
If the synth still does not work, it is most likely a mechanical problem – maybe a pin was bent when inserting the chip into the U5 socket. Or you inserted it the wrong way round. Please check – and re-insert the original firmware chip. Of course, we may have sent you a defective chip – just send it back, we’ll send a new one, along with our apologies. - I know for a fact that an EPROM chip costs about €3. Why do you charge me €25, you bastard? – Half of this money goes to the author of the firmware rewrite, Bob Grieb, as a recognition of the hours and hours he spent in analysing, understanding and improving the original code. The other half is for the chip, programming, packaging, handling and keeping this documentation, for eBay and paypal charges, and for the occasional beer/Apfelwein.
- What’s the difference between V2.14 and V2.15? Can I update? The original Oberheim firmware contained a bug which made it impossible to set parameter 12 (Osc Detune) to negative values. Not that anybody ever noticed. This bug is fixed with V2.15. If you already own V2.14 and would like to update, please return the original chip, and I’ll send you the update for €10 including p&p.
Order Form
[contact-form-7 id=”3274″ title=”Matrix-6 Order Form”]
Update, June 2017: The most recent version is V2.15; the only advantage over the older V2.14 is that a bug in the original firmware has been fixed so that it is now possible to set parameter 12 (Osc Detune) to negative values. Not that anybody ever noticed. (Nov. 2018: The old chips are finally sold out.)