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!

There is a true Oberheim Matrix editor for iPad now. And yes, it’s worth buying it.

If you have found this blog searching for the Oberheim Matrix-6/1000 synthesizer, you may already know that I still haven’t given up on breathing new life into hardware and software of this wonderful machine, and that I have made a controller template for the iPad. A controller, mind you, not a true editor – but a tool to control each parameter in a sound preset via a dedicated touch control, and pretty much without alternative.
Patch Touch app screenshot - all parameters of a sound on one page
No longer – there is a true Matrix editor app in the Store now, Patch Touch by Coffeeshopped, LLC. How does it compare? Is it worth the 15 30 Dollars or Euros? Chadwick, the guy behind Coffeeshopped, was so kind as to send me a download code for his app, and to comment on an early draft of my observations, so you’ll find my remarks updated with his comments here.
Weiterlesen

Matrix Modulation control included: iPad editor for the Oberheim Matrix-6/1000

Remember what I wrote about my attempt to build an iPad editor for my vintage Matrix-1000 analog synth with TB Midi Stuff? That it’s a pity that, due to the rather eccentric MIDI implementation of the Oberheim machine, I couldn’t build a controller for the modulation matrix? Tell you what: it works now.
20140430-235200.jpg

TB Midi Stuff – which is an absolutely great universal kit for building MIDI controllers, looking great and much cheaper than Lemur – has recently gained a feature that allows to send three-variable Sysex commands. And this is important – let me tell you why. (BTW, for those who can’t wait: Download links to the Matrix-1000 editor panels can be found in the TMBS forum.)

Let me explain the problem, and how to solve it with TBMS.

Unfortunately, this won’t work with Matrix-6s – they do not understand the sysex commands needed to program the mod matrix directly.

The Oberheim’s matrix control – one command, three parameters

As I’ve written before, the Oberheim Matrix-1000 has a couple of quirks and issues, especially concerning the modulation matrix, the analog synth’s strongest asset. Almost any other sound parameter within this synth can be controlled individually with a tailored MIDI Sysex message (something like: F0 10 06 06 1A xx F7, translating as „Listen synth, control coming up, setting vcf, to VALUE, thatsit“); the matrix modulation paths are set by a command sequence like this: F0 10 06 0B 01 xx yy zz F7, translating to „Listen synth, modulation coming up, setting modulation path 1 now, FROM, BY, TO, thatsit.“ What this means is: If you want to have full control over the modulation matrix, you have to be able to craft a Sysex message with at least three parameters.)

TBMS from version 2.2.4 on has a feature to achieve this: Masked variables – variables where you can set the bits you want to control. They can be up to 21 bits large – equalling three 7-bit MIDI values. So instead of sending three independent values, you tell TBMS how to craft a 21-bit variable containing the three parameters – and send this.

Step by step:

    • Define a global variable by entering Edit mode, selecting Page Settings in the upper right corner, scrolling down all the way, and adding a user variable. I’ve called it „mod0“, for modulation path 0; I’ve made it an internal variable, don’t worry about assigning it a range and max and min values for now.
    • Now, define a controller for the third of my three parameters – MIDI parameters are 7 bit only, e.g. between 0 and 127, equalling a hexadecimal value of 7F. Hexadecimal numbers are what you use in Sysex and masked variables, so what you do is add a Variable Message, select „Set Variable with Mask“, and set the mask to 7F. (My values are 0-32, so no setting the „Signed“ switch for this parameter. Remember to set the „Minimum Value“ and „Maximum Value“ to 0 and 20.)
    • Define a controller for the middle parameter – just as with the one above, only with a slight modification: Set the mask to 3F80. — Why is that? It’s 7F shifted left by 7 bits, and as you remember, parameters in MIDI are 7 bits. One noteworthy thing about the middle parameter: In my case, it takes values between -63 and +63, so I’ve set the „Signed“ switch here and set the „Minimum“ and „Maximum“ sliders to -63 and +63.
    • Only the most significant parameter missing now: Add another control for the first parameter, shift the mask by another 7 bit, and get 1FC000. Set Signed, Minimum and Maximum as desired (I used a 0-20 range here.)
    • Go back to Edit mode, call up the Page Settings, scroll down to your user variable, and add a MIDI message to it: Make it a Sysex message. Set Variable Size to three-byte and – this is important – Message Format to Linear (Little Endian). „Little Endian“ means that the lower values are sent first; as we’ve made our first controller control the lower 7 bits, this is just right. Set a Sysex message, which in my case is „(F0)10060Bxx(F7)“.

I guess there are not that many people who have followed my that far – but if you have, you may have noticed that the variable is supposed to transmit 3*7=21 bits of information, resulting in an integer range of 0 to 2,097,151. You can actually set that value in the Sysex range control setting,.

So whenever you tweak the controls for Matrix modulation path 0, TBMS constructs a three-byte, 21-bit message, which it then sends as part of a Sysex control message.

Enjoy!

The most recent version can be found in the TBMS forum. Dropbox link to V0.4 here and here. Please remember that there are two nasty bugs in the Matrix-1000 firmware – you cannot control ENV2->VCA and ENV1 Sustain via TBMS in consequence -, and that the editor only sends Sysex, it does not receive and interpret it.

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

Update: there is now a working editor template for editing Matrix-1000 sounds via the iPad with TB Midi Stuff. Other than stated below, it is now possible to control the modulation matrix as well – read more about it here. The buggy parameters unfortunately still won’t work.

20140329-014655.jpg

I’m just rediscovering a 25-year old piece of analog hardware: my Oberheim Matrix-1000 synth. It’s worth rediscovering: The analog circuitry is still cutting through any mix; it’s a nasty classic. And it’s a simple 1 HU 19“ rack unit; power supply included, no wall warts.

So yes, for a vintage piece of equipment, it’s handy. Unfortunately, the Matrix-1000 is a pure expander module without a single controller – no real-time tweaking the sounds to your desire. Which is a massive disadvantage to an otherwise extremely clever and versatile machine, as I’m not the first to discover. Before Access started to make very expensive top-quality VA synths, they did a hardware controller; you’ll occasionally find one on eBay for around € 700. Translating as: „It’s a monster if you can only get a controller for it.“
20140329-015834.jpg
My favourite digital music device is the iPad. So I’ve started making my own iPad controller interface, based on the cheap TB Midi Stuff controller kit. It’s an early version, still some testing to be done. And there’s a couple of things you need to realize about the Matrix-1000 before using it with an external editor.