Reclaiming the Matrix: new life for an old beast via iPad control

Here’s what you’ll need to know about this late-80s machine:

The Matrix is a really complex beast.

The basic layout of the synth is classic: two oscillators with saw/tri and PW waves, a 4-pole (24dB) resonant filter – the famous Obie filter, lush and warm yet effective – filter FM, and an amp section. Two LFOs, three EGs, nothing out of the ordinary so far. But the possibilities of manipulating sound in real-time! EG are not ADSR but DADSR, and can be made free-running, turning them into additional LFOs. Or control them by LFOs. Numerous little tweaks for the LFOs. Two additional ramp generators and a kind of five-point translate curve function. More than 20 modulation path controls, and those are only the hard-wired ones. On top of it all, there’s the name-giving modulation matrix with 10 freely programmable paths – we’ll get to that later.

You don’t just fit that much on one iPad page. And there may be a bit of a learning curve. But this may not be your main problem.20140329-023952.jpg

The Matrix is a really old beast.

Looking at the hardware, you may be surprised that there’s not really that much of it. Oscillators, Curtis filter chips, amps – everything else is done in software by a humble 8-bit CPU @ 2MHz, i.e. doing 2 Mcycles per second. Even your coffee maker packs more processing power these days. Actually, this is way too slow for what the software is aiming to do – recalculating lookup tables while playing MIDI notes – meaning that when you’re tweaking while playing the device may start stuttering. It’s also working on an internal 50Hz cycle, meaning that notes are played with a latency of up to 20ms.

The Matrix is a slightly buggy beast.

There are a couple of well-documented bugs; if you’d like to read more, I’ll direct you to this excellent resource. The most annoying ones are

  • the inability to control the sustain level of ENV1
  • an incorrect handling of ENV2 to VCA control
  • an extremely sluggish filter response – no filter sweeps via the controller.

The good: there are workarounds on software editors. The bad: To get rid of the errors, you have to be capable of taking your Matrix-1000 apart and replacing the firmware with an patched version. The ugly: there is no way to work around this bugs using the kind of simple MIDI controller I’ve used to build my interface. You may have to live with it.

The Matrix is a slightly eccentric beast.

20140329-015849.jpgAs MIDI goes, internal settings and parameters are controlled via System Exclusive messages – basically, a way to transfer whole patches – and, with more modern synthesizers, via NRPN (Non-Registered Parameter Number) messages changing a single setting. The Matrix does not understand NRPN – the programmers seem to have aborted the effort – but two types of SysEx commands setting individual parameters. This works, but there are limits to what you can control individually.

This is especially nasty when it comes to handling the revered modulation matrix. Each matrix path is set by a command transferring source, amount, and destination; unfortunately the TB MIDI Stuff app won’t let me combine three parameters into one SysEx command. I’ve come up with a partial workaround to give you some degree of matrix control, but to implement that, I’ll have to place around 200 additional elements in the modulation panel – think I’ll skip on that for the moment. This works now, due to extended TBMS functionality! See my follow-up post.

What that means is that, for the time being, you won’t be able to manipulate the mod matrix. Or, by the way, global settings. If it’s of any comfort to you, the Access controller couldn’t do it either. Get over it and get an editor for in-depth programming, but use my editor to do some quick sound soul searching in the studio.

Download Matrix-1000.tmbc (512k, Dropbox link) There’s a newer version now, see follow-up post. Download here: [MOD panel][OSC panel]

…and you’ll need TB MIDI Stuff (come on, it’s only € 4,49)

There are bugs in TB MIDI Stuff as well. Rather strange ones. I had to do a few workarounds. And as you may have guessed, the controller panels are very beta – if you come across an error, be so kind and drop me a line so I can try to fix it, or go and fix it yourself.

Verwandte Artikel:

7 thoughts on “Reclaiming the Matrix: new life for an old beast via iPad control

  1. Wie Geht’s ! Sorry, my Deutsch is too rusty to communicate effectively. Have you tried the various firmware fixes mentioned at these links ? Perhaps they would make the M1000 more responsive to your controller app?

    • I’ll be doing the “New CPU” mod pretty soon, but there’s a lot of soldering involved. The possibly most effective change in the firmware is that this guy has rectified a problem in the original firmware – any time the Matrix gets a “Change Parameter” Sysex sequence, it does a calculation that takes between 10-25ms. (Measured by a pretty smart guy who has built a Verilog simulation of a Matrix-6.) As every move of a fader generates, say, 20-30 steps, all these are worked through in sequence – generating those 1-2s silence while the M1000 is processing.

      Now another extremely smart guy had an idea: how about having parameter changes just set a flag – and trigger the recalulation sequence only every 20ms? (The M1000 has a 50Hz clock, i.e. it won’t be faster than that anyway.) The French guy has coded this idea into the firmware, and it seems to work pretty good.

      Don’t know whether the firmware works with the default 6809 CPU as well – AFAIK his firmware mod depends on having a faster CPU.

      • That’s super, thanks. I just fixed a bad 3396 chip on a ‘broken’ M1000 I found cheap for $80 (since it was broken, heh). I’m looking at doing the same upgrades as you. This M1000 modding situation is very cool, making an old digitally controlled analog synth better than ever!


    • Die hier ist entstanden mit TB Midi Stuff – das ist so eine Art Baukasten für Midi-Controller – und funktioniert im Prinzip so:

      • Such Dir ein Funktionselement, zum Beispiel einen Drehregler.
      • Ändere die Eigenschaften des Drehreglers. Als erstes: Weise ihm einen Wertebereich zu. (Zum Beispiel: -63 bis +63 für die Frequenzmodulation durch LFO1.)
      • Eine Eigenschaft, die so ein Drehregler bei TBMS hat, ist die MIDI-Message, die er absetzt. Hier “Sysex” auswählen und den Sysex-Controller-Kommandostring für genau diesen Parameter angeben.
      • Testen. Fluchen. Noch mal von vorn anfangen. :)

      …und so weiter, und so fort. Ist eine ziemliche Frickelei.
      Es gibt ein paar andere Controller-Apps, mit denen es wohl etwas einfacher ist – Midi Designer oder das sündteure und ziemlich mächtige (=komplexe) Lemur. Aber so weit ich weiß, kann nur TBMS diesen ganz besonderen Trick, den du brauchst, um die Modmatrix zu editieren – mehr dazu in diesem Artikel.

  2. Hallo, ich habe mir vor ein paar Wochen auch einen Matrix 1000 gekauft. Habe dann die Firmware 1.16 nachgerüstet und betreibe ihn nun mit deiner Remote-Oberfläche.
    Ich wollte mich an dieser Stelle bedanken, weil die Möglichkeiten die du damit geschaffen hast, diesen wundervollen Synth für mich erst richtig wertvoll werden ließen. Beste Grüße und vielen Dank!

Leave a Reply

Your email address will not be published. Required fields are marked *