Matrix-1000 sensation: Rare bug spotted in the wild after 30-odd years!

An option for setting voice allocation in the Matrix simply does not work – never has – and nobody seems to have noticed up to now. But there’s a fix for that.

A cute golden bug akin to a cricket looking above the edge of a circuit board

“Hey, I want that update! Especially as I already own V1.20!” — PLEASE READ HERE

A couple of days ago, Bob Grieb – the engineer behind the Matrix-1000 update I am selling here – got a email from a Matrix owner using the updated V1.20. The mail politely noted that the “Reassign/Rob” setting wasn’t working, and inquired whether there might be a problem with the V1.20 firmware. Bob, who does no longer own a Matrix-1000, fired up a Verilog simulation he had created for testing, and found that the Matrix owner indeed was right – the “Reassign/Rob” setting of Parameter 48 (0x030h) wasn’t working, and it wasn’t working in firmware V1.13 either – a very early patch of the last factory firmware by Oberheim itself.

So it was a bug that had always been there, and nobody seems to have noticed. Or, at least, have cared enough to look for a fix.

What “Reassign/Rob” is supposed to do – and why you never noticed

The Matrix-1000 has six voices. When your Matrix is playing six notes at once, it won’t accept any new notes unless you release one of the notes being played. This is the default setting, and it comes in two flavours, “Rotate”, and “Reassign”. They are set with values 0 and 1 of parameter 48, and the Matrix-1000 manual also has two more settings, Unison (all voices playing at once), and “Reassign/Rob”.

The Matrix-1000 manual is a bit cryptic about the meaning of all this; quoting from the Matrix-6 manual instead:

  • ROTATE: When playing notes on the Keyboard, this polyphonic mode loops through the six Voices assigning each new note to next available voice.
  • REASGN: Abbreviation for “Reassign”, this polyphonic mode is similar to ROTATE but notes that have the same pitch (otherwise known as “note value”) are reassigned to the same voice. For example, if you play Middle C it will be assigned to a certain voice. Every time thereafter when Middle C is played on the Keyboard, that voice will play. “Reassign”, by the way, is the KEYBOARD MODE enabled in the Basic Patch.
  • UNISON: This mode takes the MATRIX-6 out of polyphonic mode and makes the synthesizer monophonic.
    (…)
  • REAROB “Reassign Rob”: When in Reassign (REASGN) mode, voices will be robbed from keys held in the same way as ROTROB.

So what the “Reassign/Rob” value actually is supposed to do, is to enable voice stealing — notes being played suddenly go missing, making it painfully obvious that your synth is running out of resources. It is infuriating when we notice, and we seem to notice the limitations of a 6-voice synth a lot more when notes suddenly vanish than when they never appear in the first place.

So to be honest, I never noticed that this doesn’t work. Did you?

Bob, however, found the reason: The code for the note-stealing setting is 3, but there is a safety check that limits the parameter to entries from 0-2 instead of 0-3, so that the correct value can never be received. It’s only one byte that has to be changed – no, one bit, actually: Look for 0x81 0x02 0x22 0x02 in the ROM and change it to 0x81 0x03 0x22 0x02; changing one lousy bit. It’s that simple. And this is what we decided to call V1.21.

A rack with a controller, a Matrix-1000 synthesizer, and a Lexicon digital reverb; the Matrix showing

V1.21 is displayed on powering up

So how do I get it?

Unfortunately, this means that we will have to throw all V1.20s away, we cannot correct them. The one bit we have to change cannot be reprogrammed, so to upgrade from V1.20 to V1.21, you have to create a new chip, send it, and swap it.

And this is the main reason we don’t give the update away – this needs chips, and this takes work, so we charge you what is basically just the price of the chip and a fiver for programming it, and one Euro for Bob. We had a similar deal for Matrix-6 V2.14 owners when Bob discovered another bug that had always been hiding in the Matrix-6 firmware — and I hope you think that this is fair, because it is: after all, the bug wasn’t Bob’s fault, so he is in no obligation to fix it for free.

One last thought: ask yourself whether voice stealing is really worth the hassle. I know perfectly well that it’s quite possible to go GASsing for a software update, but: If you haven’t noticed the bug before, you probably won’t need the patch.

M1000 V1.20->V1.21 Update

Matrix-1000 V1.21 Firmware Update ROM for V1.20 owners

Item number: 0002
Item price: 12,00 EUR
(incl. 19,00% sales tax and plus Shipping cost)
ROM chip with re-engineered firmware for the Oberheim Matrix-1000 synthesizer

Firmware chip for the Oberheim Matrix-1000, V1.21 (Update for V1.20 owners)

V1.21 fixes a bug that prevented using voice stealing in all former firmware versions and assumes that you own a V1.20 license, i.e. bought the chip from me, Alpes Machines, or Bob Grieb. Price covers the chip and the burning of the firmware but not the license for the update - if you don't have an updated synth yet, you will have to buy a V1.21 new. Firmware update engineered by Bob Grieb/tauntek.com. Sold with permission, please prove ownership of a V1.20 license. (That doesn't cover anything you bought from some guy on the internet, I'm afraid.)
   

Yay! I’ve bought a DIY Minimoog. (And Jenny is going to love it!)

Isn’t it GORGEOUS? Classic Minimoog – less of a control panel, more of an erogenous zone for synth nerds. Tell me you don’t want to feel up these knobs! The pure beauty of a one-of-a-kind electronic instrument. The design and the sounds are still in highest demand more than 50 years after its design – and I was pretty sure I’d never, never even be tempted to buy one.

I never even wanted a Minimoog!

Let’s be honest: Moogs are ludicrously overpriced, and overhyped. Not a single classic Moog ladder filter sound you couldn’t do just as well with a modern plugin, or almost any modern hardware. Hey, even the R3 – my most underdog synth – can do pretty decent Moog impressions. And if you are with the “Digital-will-never-sound-like-true-analog” esoterics, there is still the option of Neo Old School: Using the old design with the upsides of modern analog technology. Get yourself a Boog, for fuck’s sake. (And a life.)

Still… as we know, it’s all about the workflow – and about that unique combination of how an instrument looks, feels, and sounds. So when I saw a Moog enclosure and front panel on eBay for a couple of Euros, I could not resist and had to buy it.

“It’s aliiiiive!” – How to give life to an empty corpus

Continue reading

Niederlagen – auf dem Weg zum Technikfriedhof

Es ist ein schönes Gefühl, Dinge reparieren und instand halten zu können. Der Technik nicht ausgeliefert zu sein. Funktion möglich zu machen.

Es ist ein nicht so schönes Gefühl, durch Blödheit oder Ungeschicklichkeit die eigenen Erfolge sabotiert zu haben. Und wo ich gerade am Aufarbeiten alter Schludrigkeiten bin, kann ich auch gleich das festhalten: Manchmal baut man, wenn man baut, Mist.

Fall 1: der Beamer.

Bei eBay als defekt ersteigert, weil ich aufgrund der Fehlerbeschreibung die Vermutung hatte, da wäre noch was zu machen. Tatsächlich: Bald hatte ich heraus, dass der Projektor an sich völlig intakt war, aber unter einem schlecht montierten Gehäuseschalter litt – so ein Schalter, der beim Öffnen des Gehäuses die Stromzufuhr unterbrechen soll; er unterbrach sie auch gerne einfach so. Über meine Entdeckung war ich so euphorisch, dass ich unvorsichtig und ungeschickt geworden bin und mit dem Schraubenzieher im geöffneten Gerät einen Kurzschluss verursacht habe.

Drei Dinge passierten:

  1. Es knallte gewaltig.
  2. Die Sicherung flog raus und ich saß im Dunkeln.
  3. Vor Schreck riss ich meinen Arm zurück und dabei die Bedienplatine samt Stecker von der Platine.

Natürlich habe ich versucht, das wieder hinzubiegen bzw. zu -löten, aber ohne Erfolg. Tja, einige Sekunden lang hatte ich für praktisch überhaupt kein Geld einen eigenen Beamer.

Fall 2: die Büro-Kaffeemaschine.

Ach, meine gute, alte Saeco Vienna. Ein Sorgenkind von Anfang an, und dann: treu, brav, verlässlich. Bewährte Koffeinspenderin für einen guten Teil des Büros, und bei kleineren Wehwehchen mit etwas Liebe immer wieder zur Arbeit zu bewegen. Da sie das zwanzigste Lebensjahr schon hinter sich haben dürfte und sich zumindest in den letzten Jahren bestimmt nicht gelangweilt hat, ist das schon eine Lebensleistung. Und doch…

…plötzlich, nur noch Tröpfchen statt eines Kaffeestrahls. Wohl meinende Kollegen rissen laue Witze über Prostataprobleme bei älteren Herrschaften, kurz: es war wieder Zeit. Einen Sonntagnachmittag lang den Küchentisch blockiert, den Fehler gesucht und bald gefunden – wie beim allerersten Mal war es ein Krümel Kaffee, der den Durchflussmesser verstopfte. Schnell beseitigt und gleich noch an die Große Inspektion gemacht, also gereinigt, das Mahlwerk demontiert, Dichtungen ersetzt, zusammengebaut, ausprobiert, gemerkt, dass eine Dichtung fehlte, die Sauerei weggewischt, alles wieder aufgemacht, Dichtung umgesetzt, zusammengebaut, läuft. Super!

Also schnell aus der Wohnung schaffen, damit sie aus dem Weg ist.

Der Denkfehler wurde mir klar, als ich die Maschine am nächsten Morgen auf Arbeit aus dem Auto holte: Es ist kalt, auch in Frankfurt friert es nachts. Das Restwasser in der Maschine war auch gefroren. Und damit sind einige Dichtungen und Schläuche hinüber. Welche, das will ich schon gar nicht mehr erkunden – vermutlich die Boilerdichtung, für die man wirklich, wirklich alles auseinandernehmen muss.

Kofferrauminhalt

Links die erfrorene Kaffeemaschine, rechts der erschlagene Beamer. Und ein Paar alte Autoboxen

Das hier ist also nur noch eine Kofferraumladung Elektroschrott (genauer gesagt: ich habe beschlossen, dass es nur noch Elektroschrott ist), und geht demnächst zum Recyclinghof.

Aufgegeben? Ja.

Hätte ich die Reparaturkandidaten nicht noch einmal reparieren können? Vielleicht. Aber so wie mich der Beamer seit Monaten vorwurfsvoll anguckt, hätte mich auch die Kaffeemaschine vielleicht jahrelang angeguckt, bis ich irgendwann dann doch den Mut und die Zeit gefunden hätte, einen Tag für einen weiteren Reparaturversuch zu opfern. Nenn mich schwach: Ich habe das nicht mehr ausgehalten.

Ärzte, sagt man, können ihre Fehler auf dem Friedhof besuchen. Ich habe meinen zumindest hier im Blog ein kleines Denkmal gesetzt.

Serious GAS warning: Stereoping is building a new Matrix controller!

Stereoping Matrix 1000/6/6R controller, preliminary visualization Oct 2016. Source: stereoping.com
Ah, yes, GAS, Gear Acquisition Syndrome. It happens to the best of us. So if the thought of a new hardware super-controller by Stereoping is giving you sweaty palms, especially as you learn that it will also be available for Microwave, MKS-80, and Rhodes Chroma, you’d better not read on. The specs I’ve got for you would only make you GAS much, much worse.
Continue reading

Shameless Teaser: Ctrlr editor/librarian/controller panel for Matrix-6/1000

UPDATE: Possemo’s Matrix-1000 panel for Ctrlr has been released and is free to download here.

As teasers go, I’d give it only a 0.3 on the Behringer scale – but it’s for something that I am not directly involved in, so it’s a bit shameless from me. But Chris, who is working on this, has kindly allowed to use these screenshots from his upcoming editor/librarian/controller panel for Ctrlr, the open-source multi-controller. Available for Windows, Mac, and Linux (!)

Granted, there is already a Matrix editor panel, but it’s been in permanent Beta, and Chris’s panel simply looks great, from the layout of the controls, via the Matrix-movie branding, to the randomizer (brought up by clicking on the red pill, of course!). So: stay tuned!

Could you also patch an Alesis IO Dock II?

Is it possible to retrofit an Alesis IO Dock II with an internal USB hub, just like I did with my IO Dock 1? TL;DR: Some have tried and failed – seems like Alesis deliberately switched the code for this hack off. 

01

This photo was sent to me by Blek in the Czech Republic who asked that very same question. He has taken a look inside his IO Dock II and noted that it features an all-new PCB, so my original hack won’t work. And of course there is no guarantee that the prerequisite for the original hack is still implemented in the IO Dock II: the ability to function not only as a USB bus host for the iPad, but as a USB bus slave device, with the iPad working as the bus master.

The good news is: It is simple to give it a go, as Alesis took extra care to label the locations of the USB bus signals:

iodock2

So here is what you do to try it:

  1. Get a male-female pair of plugs matching the connector in question. Possibly a 12-pin version of these connectors, so as in the original hack, 2mm pin grid stripes could work. They are a bit hard to come by, but it is possible.
  2. Solder connections from male to female for all lines but 6 and 7 – the D- and D+ USB data signals.
  3. Get a suitable UBS2.0 hub – I used a Belkin F5U404; you might have to try a couple of hubs if that one does not work.
  4. Take the cable that is meant to connect the hub to the computer – it should have a standard USB plug on one end and a USB mini connector on the other end – and cut it in half. This is the only non-reversible action you are taking, but as it is easy to buy a replacement cable, there is not much harm done if it does not work.
  5. Take the cable half with the USB A-type plug, for connecting it with the computer. Solder the cable wires to the connector that goes into the IO Dock side as follows: Red (Vcc) -> pin 1, White (D-) -> pin 6, Green (D+) -> pin 7, Black (GND) -> pin 8.
  6. Take the other cable half with the USB mini-B plug for connecting to the hub and solder it to the iPad side, i.e. to the connector that is leading to the iPad connection cable. Once again, solder red to 1, white to 6, green to 7, and black to 8.
  7. Do some checking for connections and possible short-circuits. Believe me, it’s worth the effort.
  8. Unplug the IO Dock board connector for the iPad. Insert your freshly-made adapter.
  9. If it works, make a video of it. Become world famous. :)

Wiring diagram

Wiring the USB hub connector: Once again, the trick is having the iPad work as USB host rather than as a slave device, and the IO Dock as the slave rather than as the host. Use your hub’s connector cable, cut in half, and solder the color-coded wires to the connectors as shown.

Sorry for my rather artistic impression of the adapter, hope it gives you the right idea. Pin 1 is to the left, pin 12 to the right. IO Dock side is up, iPad connector side is down.

Just to be sure:

  • I’d strongly advise you to solder and try out the adapter rather than soldering any wires to your IO Dock. It is a good thing to keep that sort of stuff reversible. For this reason, don’t start dremeling before proving that it actually works…
  • …which I won’t guarantee you. Mind you, I don’t even own an IO Dock any more. If you start doing this, you should know what you are doing.
  • Please understand that the base for this hack is a feature that Alesis seems to have implemented deliberately into the first IO Dock (see Dan Radin’s comment): the ability to work as a USB slave to the iPad, in addition to normal operation, where the IO Dock works as a host for the iPad. If the IO Dock does no longer do that, you can try to rotate the USB hub, but that’s about it.
  • Please write me back with your experiences. Please don’t get on my tits with any attempts to make me do this hack for you, or repair your IO Dock if anything went wrong. (Oh my god – I just realize that bullshit warnings are obviously contagious.)

It’s worth giving it a try, isn’t it?

Thanks to Blek for allowing me to use his pictures.