New Oberheim Matrix 6/R Firmware

Matrix-6/R Firmware V2.14 in box

Newest version: V2.14, January 2016. 16-bit checksum of PROM is 23EB. Sold with permission and under licence of the author. Ready-to-use firmware chips available for €25 plus P&P (€2,50 in Germany, €5,00 to European destinations). Interested? Just contact me.

Installation instructions and documentation.

TL;DR – For people who know their way around electronics

  • Works with keyboard (Matrix-6) and rack (Matrix-6R) version
  • Backup all patches in RAM memory, just to be safe
  • Insert firmware IC in socket U5
  • 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.

 

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.

matrix6-rom

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.

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.
  • Bug-fixed MIDI parameter control of modulation: The original firmware does not accept negative parameter values for modulation amounts. Full-range handling can be implemented by setting the Sysex Enable Master parameter to 2 – if your MIDI control is capable of sending negative parameters – or to 3, e.g. with a standard MIDI slider that sends only positive values: The halfway position is interpreted as the zero point, positions below are negative, positions above are positive values.

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.)
  • 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.

Order Form

Firmware chips available for €25 plus shipping (€2,50 within Germany, €5 within the EU and Switzerland; for international orders please contact Bob Grieb). Price includes V.A.T./MwSt. in Germany and EU, for non-EU destinations, additional taxes may be charged by customs. 

The chip is sold by Ingenieurbüro Günther Eggers, Tilsiter Strasse 2, D-75181 Pforzheim, Germany. Sold with permission of the author, and including a royalty fee to him. 

Interested? Send me a shipping address, and we’ll send you an invoice via PayPal – you’d need an account there. If you want the chip, just pay the invoice, and we’ll send you a chip straight away. If you don’t, just forget about it – I’ll cancel the invoice after a week. (This is sorta experimental yet but it should make it easy and safe for you.)

The chips are sent as a Deutsche Post letter; this is the cheapest and fastest way. If you want insured shipping, let me know by selecting this option.
You may the return the chip within 2 weeks after getting it if you don’t like it. All I’d ask you is to bear the return shipping cost.

Order Matrix-6/R Firmware Chip(s)