Matrix Ctrlr 1.05 : new features

  • New memory management : the name & tone of a patch, the arp parameters, the unison detune are organized a bit differently, allowing direct upload of patches from the matrix 6/ 1000 to the Ctrlr without a computer. An auto initialization sequence on boot formats the memory if the eeproms are new. A hidden menu allows to format the Ctrlr to factory state.
  • Test mode : pressing F1 & F2 while powering allows to test the unit during building/soldering.
  • Several Matrix synths controlled at the same time : now control 4 units independently.
  • Randomizer on tone parameters : press a button to create random values on DCO or ENV for example (a customer request).
  • Triggers : external analog sources to trigger the arp/seq are now supported. Even a general midi rimshot (37) note message can be used !
  • Complete debug of the user interface : DCO2 Pulse doesn’t provide random press anymore (on PCB earlier rev1.2). Some random controllers corrected.
  • Complete integration inside a midi environnement and a DAW with Local Control on/off.
  • Complete sysex/control change translator implemented.
  • Zone : Midi patchbay on 4 channels, with transpose, range and redirection.
  • System config sysex.
  • Ctrlr less verbose : smoothness with Matrix when editing it.

The firmware is available on Github

NOTA : backup your patches before upgrading !


It has been tested on Logic Pro 9 with one Matrix 6 Keyboard, one Matrix 6 rack and 1 Matrix 1000 rack. Beware of the midi loops ! Setup correctly your gear to manage 4 channels and remind you that sysex don’t have a channel.



Firmware update 1.04 : final release

First it has been discovered that the Matrix 6 sends curious Note On messages instead of Note Off if you load a new patch while any keys are pressed, so it is strongly advised to send Notes using a MIDI Master keyboard !

Many of the features are working as expected, from the beginning.

The only real bug that has been found applies to customers with PCB v1.2 or earlier: pressing the DCO2 Pulse switch sometimes leads to random press of the other switches. It has been solved by scanning twice and comparing the results. All customers are advised to update to final releases 1.04.

Before updating, as the memory management has been completely rewritten to be faster, it is an absolute necessity to back up all your patches first by using the DuMP function in the CFG Menu (since 0.99x).
Once loaded, 1.04 will format all the memory of the Matrix Ctrlr, erasing datas, while booting. You can then reload the 8 factory banks + 2 custom banks into the Ctrlr via SysEx.

You now can save your Matrix6/1000 personal bank directly to the Ctrlr without a computer and a third party software (Sysex librarian or C6). To do this, connect the Midi out of the Matrix1000 to Core In, select your Matrix1000 (A, B, C or D, depending of your configuration), and in page 2 of the PATCH Menu press GET. The Matrix1000 will send the selected bank to the Ctrlr.

Now a bit of technical detail (and maths):

A Matrix Patch is [134] bytes :

  • [8] first Bytes are used to store the Name,
  • [126] following Bytes are used for the Tone parameters.

The Ctrlr stores those patch parameters in four 24LC512 EEPROMs.

Writing to the 24LC512 EEPROMs uses a fast method (known as “paging”) where we write 128 bytes in one shot. An EEPROM has 512 pages of 128 bytes each, thus the Tone parameters are stored on odd EEPROMs, while the names are stored on matching even EEPROMs with the same ‘page’ reference.

While it should be clear that we could store 1024 (512×2) patches with 4 EEPROMs, we have instead to mimic the Matrix 1000 and allow only 1000 patches. The remaining free space on each page of the matching even EEPROM is used to store Unison, ARP and Sequence associated to each patch.

Because the Ctrlr is too slow to write on two external EEPROMs between two patches sent directly from the Matrix 1000 via MIDI, we decided to save only the useful tone parameters on the odd EEPROM, and it works rather well. Nevertheless, the Matrix 1000 sends patches with names like “BNK1: 02” that are completely useless.

The Ctrlr saves them as “MTRX-102” on the EEPROM pairs with a default Unison detune of 0, default Arp Parameters and a default Sequence. You are free to edit name, unison, arp and sequence and store them after using SAV. When DuMPing the Ctrlr memory, several SysEx messages associated to a patch are generated in this order: a SysEx message containing the Unison Detune value, a SysEx message containing the Arp Parameters & the Sequence and a SysEx message containing the Matrix patch, identical to those generated by Oberheim Matrix 6/1000.

This order is important and it permits to save all the memory with your favorite SysEx librarian in order to create a backup useful to the Ctrlr. This represents 3012 SysEx messages (1000 patches + 1000 unison + 1000 arp/seq + 10 Change bank message + 1 Matrix master parameters + 1 system config sysex) so a computer is highly recommended to store so much data.