Wednesday, February 11, 2009

Matrix 1000 vs. Matrix 6 DCOs

A point of contention among Oberheim fans is what the differences, if any, are between the Matrix-1000 and the Matrix-6/6r.  Here is an interesting web site from an unnamed Matrix-1000 owner who has done some excellent analysis of the circuitry on the 1000 and several other synths.  Both the Matrix-1000 and the Matrix-6 are based on the CEM 3396 synth-on-a-chip, one of the last and most highly integrated of the Curtis synthesizer building-block IC designs.  Basically, a 3396 is a complete monosynth, or single voice of a polysynth, needing only control voltage sources and some support circuitry.  Among other things, the 3396 has onboard two digitally-controlled oscillators (DCOs); they derive their output from a high-frequency (well above audio range) master clock that must be supplied by external circuitry.  

The author of the Web site linked above writes that the Matrix-6 uses three high-frequency driving oscillators for the six 3396s in the synth.  It's a rather strange grouping: HF oscillator 1 drives VCO 1 of all six voices.  HF osc 2 drives VCO 2 for voices 1 and 2; HF osc 3 drives VCO 2 for the other four voices.  Why this particular division?  I can't think of any explanation.  However, it does assure that for all six voices, VCO 1 and VCO 2 are clocked to separate HF oscillators.  And since the HF oscillators in the Matrix-6 are basically Hartley LC circuits, they are subject to drift caused by temperature, electromagnetic interference, component aging, and a host of other factors.  So for any given voice, VCO 1 and VCO 2 are almost certain to not be precisely in tune to each other.  There is an onboard auto-tune routine for the HF oscillators, but on my Matrix-6r, it doesn't seem to make much difference.

The Matrix-100o goes with a simpler scheme: the HF source for all twelve VCOs is a divide-down of the 6809 CPU master clock.  This is a crystal-derived clock, so it can be expected to not drift much.  However, the point is that all of the VCOs are referenced to the same clock, so the differentials that exist between VCO 1 and VCO 2 in a voice of the 6/6r do not exist on the 1000.  There does appear to be some other source of injected phase variation, since the 1000 in unison mode doesn't suffer from the "phase lock" problem that, say, the Roland Juno-106 exhibits when in unison.  But the tuning drifts that are often credited as being the "sound" of analog VCOs are not present in the 1000.  Take that for what it's worth.  Actually, I think that there's very little difference in sound between the 6/6r and the 1000.  

Incidentally, the Web site linked to in the first paragraph is worth visiting for other reasons.  Among other things, the author of the site appears to have access to the Matrix-1000 firmware source code, and he points out a couple of bugs.  When I was writing M1000X, there were some funny things going on with the envelope settings that I never tracked down, and it bugged the heck out of me because I couldn't find anything wrong with my code or the MIDI data it was sending.  This page explains it: due to a firmware bug, you can't change the sustain level of envelope 1 using the parameter edit sysex.  Attempting to do so changes the initial level of envelope 2 instead.  Sigh.  At least now I know how to work around it.  


Unknown said...


Hi. Sorry to track you down here on your blog. I've been trying to use your m1000x editor. Having an issue or two. Now, I realize that you gave this away, and asking for 'support' may not be so cool. But I searched for other people having this issue, and couldn't find anything.

The program 'sees' my Matrix-6, but I get an error every time I try to communicate with the synth (on program startup as well). It's a "midi time out" error. I can't get communication going.

I'm using 10.4.1, and have an intel-based mac. The oberheim is connected to midi via my M-audio midi keyboard. The audio midi setup is correct.

I'd really like to be able to use your editor/librarian. it seems like most commercial products have disappeared, and yours got lots of rave reviews.

Any simple fix(es) to this? Oh and all of my master settings on the Matrix-6 are what your guide says to do.

Thanks so much.

Michael Van Huffel

Patrick Manderson said...

"Attempting to do so changes the initial level of envelope 2 instead. Sigh. At least now I know how to work around it."

I'm building a programmer for my matrix 1000, much like the Roland PG200 is for the Jx3p synths. Could you explain your "work around"?