Monday, November 9, 2009

Matrix 1000 Hardware Controller

So, if you read my description about my Oberheim Matrix-1000 you partly know why I am doing this. Well, it's not only because of the editing possibilities...

Being interested in electronics I always wanted to build something but I have always felt that a project is either too big, too complicated or even that someone else has already done it. So, although this will be big I believe I am capable of constructing the necessary hardware, programming it and making it work and I can afford to buy the things needed (although I admit it will probably be a bit expensive..)
The thing that worries me the most is my usual enemy, waning motivation :)
Let's just hope I don't run out of that.

My preliminary design features are:
  • Every parameter directly available (no "alternate" functions), even matrix modulation parameters
  • Every potentiometer should have a 10-segment LED array associated with it to show the current value, or the value of the patch if the value hasn't changed.
  • Nice "digitaster" style buttons with LED indication
  • Divided into "modules" as on conventional panels, like DCO1 parameters grouped together, ENV2 parameters grouped together etc...
  • LCD displays for the matrix modulations to show actual words of the source and destination routings (maybe overkill as it will require 10 displays)
  • LCD displays for the LFO sample sources and possibly waveforms (most likely overkill)
  • 16-step sequencer. Simple, but enough to test out a patch without an external sequencer running.
  • MIDI merger, needed to keep SysEx data, 16-step sequencer data and external MIDI messages from colliding.
  • Large LCD display for general information, showing LFO waveforms, all parameters in one module and things like that.
  • Controlled by a microcontroller, for example an NXP LPC-type for which I have bought a development board (LPC-2103) and started experimenting with. Possibly need another controller instead with more memory as I suspect I will run out.
The modules are planned to be divided as follows:
  • DCO1
  • DCO2
  • VCA+Keyboard+Legato
  • VCF
  • LFO1
  • LFO2
  • Envelope 1
  • Envelope 2
  • Envelope 3
  • Tracking and ramp generators
  • Modulation Matrix
  • Sequencer

And, just to make things clear:
I know there are software editors that do the job already. I don't like to edit with the mouse. I learn by doing this project and it's fun!
I know about the Access Matrix programmer but it's not "complete" and I didn't build it myself :)
I know there are things like the Behringer BCR-2000 but again, I didn't build it myself and I don't learn anything by buying it. Also, being a generic controller, the controls for each block in the synthesizer aren't grouped together.
I know you think a dedicated Matrix 1000 controller with all parameters available would be awesome so don't try to fool yourself, or me :)

Now I hope you can wish me luck (without being sarcastic) instead of trying to convince me I shouldn't do it ;)

In fact, I have already done some initial tests and evaluations. These can be seen on youtube.

The first one is a test of whether I manage to send MIDI data and make an interrupt driven 16-step sequencer. Hardcoded, but still:

I have also built a prototype board for controlling the parameters for DCO1.
So far I didn't connect the DCO1 module board to the microcontroller because I need the motherboard prototype built first.
Here is a video of the DCO1 module board prototype and some "manual testing" of it:

As noted in the video I need to test the analog multiplexer by connecting potentiometers to it and I also need to test the button input functionality. Once that is verified I have to make the motherboard to act as a kind of addressing controller for all the module boards.

So, this is an introduction to my project and shows what I've done so far. More will hopefully follow soon...



  2. This comment has been removed by the author.

  3. This is a f****** rad project. I have quite a lot of the same synths as you and it's a thrill to be educated on their different quirks during my nightwatch :-)
    I will follow this project at close hand since programming the matrix 6 and matrix 1000 is tedious even with M1000, midiquest etc.
    I'm looking in to buying the bcr-2000, but please develop a better solution :-)

  4. It should be noted that I have not done anything on this for over a year now. I have realized the cost for the things I planned to include will be very steep, such as an LED-bar for every potentiometer, which needs drivers and decoders etc... I have to reconsider my design.
    In the meantime you could check out
    There's a guy who made a hardware editor using the MIDI Box stuff.