Software Development : Matrix Synthesizer Controller

a live - interactive program .. inputs MIDI controls or controlled from Windows interface. Outputs 16-32 channel CV and/or MIDI

Matrix - Controller   .. first version is working

Demoed a spin-off PC Electronic Music game/toy today ... 10/21/2013

Pro-typed in C# , final product will be C++ Windows application  (could be ported to the Mac)  

 "Matrix-Controller" can perform all the standard "classic" synthesizer controls PLUS much more:

This is a synthesizer control program, it will produce 16-32 separate analog control-voltage outputs and/or MIDI outputs (switchable) . a massive sequencer .. conceived in the style of Buchla

(CV out requires a USB -> Voltage interface   ( output to Buchla CV /Trigger Interface ( x16 or x32))
(MIDI out works with any Midi interface)


-=-=-=-=-Description =-=-Matrix Controller – Software Control Program for Analog Synthesizers -=-=-=-=-=-=-=-=-=-=-=-

the “Matrix-Controller”  because any module can be patched to any other through a virtual patch bay. It is currently for Windows PC , but it could easily be ported to Mac.

It is intended to provide control voltage modules for a Buchla system (or any analog system) and do so in a totally flexible virtual patch panel.

This only creates control voltages, no audio signals. For input it accepts both MIDI and digital and reads dials, sliders, buttons (like on the Korg NanoKontrols) or MIDI keyboard.

It is focused on live performance (allows actively changing the controls while running), it is not designed for recording “Switched on Bach” or whatever like traditional sequencers. 

It will have 8 / 16 / 32 outputs (there are 8 / 16 or 32 program processes running in parallel)

Each (output) process can be chosen from these MATRIX MODULES:

1.      MATRIX SEQUENCER - A Sequencer (function generator)– virtually unlimited number of stages with 1-8 control voltages (quantized, interpolated, or absolute values) can be set for each stage, each stage of the sequence can choose to insert any other MATRIX MODULE

a.      Pulse in, pulse out for each stage

b.      Forward, backward, arch (up and down), random, odd, even, or directly select the stage # (selected by a control input CV or the output of any other MATRIX MODULE)

c.      Live editing of the values of each step

d.      Start, stop, trigger other instances of the MATRIX SEQUENCER

2.      Arpeggiator - accepts a MIDI keyboard input or input from the Matrix Sequencer

a.  Patterns - up, down, arch1, arch2, as entered, random

b. Octaves 1-8

c.  Rhythm - choose from 256 rhythmic patterns or enter a specific rhythm

3. Source of Uncertainty A – continuously fluctuating random voltage

a.      Rate of change

b.      Range

3.      Source of Uncertainty Q – quantized random voltages

a.      Like a sample and hold – change of value is triggered (internally or externally)

b.      Rate of change

c.      Range

d.      Skew

4.      Source of Uncertainty R – stored random voltages

a.      Degree of randomness

b.      Degree of chaos

c.      Skew

5.      Sample and Hold

a.      Input from any other MATRIX MODULE

b.      Timing pulse creates the sample (internal pulse or external)

c.      Slew rate

6.      Slew

a.      Input from any other MATRIX MODULE

b.      Slew rate

7.      VC- LFOs

a.      Voltage controlled (or controlled by another MATRIX MODULE output) LFO

b.      Sine

c.      Triangle

d.      Rectangle (pulse-width controllable)

e.      Ramp

f.       Table-driven (any waveform can be entered into the table)

8.      Mixer

a.      Combine  / multiply / offset / any set of outputs from other MATRIX MODULES

9. Frequency Divider

analog stepping sequencers do frequency division (and multiplication)




               All sequences, settings and actual performance outputs can be recorded and reused.


Any channel (output) can select any MATRIX MODULE type.


Each stage of the MATRIX SEQUENCER can insert any other MATRIX MODULE

(for example, you could have

1.      a 8 step sequence,

2.      then have 8 stages that are Sample & Hold Random Voltages (quantized or not) ,

3.       then 1 stage of Fluctuating voltage,

4.      then a stage could insert another currently active sequencer and

5.      then return in the next stage return to the beginning 8 step sequence.


Inserted stages could be chosen randomly from active other modules


I had originally begun this as a MIDI controller but now am writing it as an Analog Control Voltage system (a set of MIDI outputs on another USB port would be an option)


Pattern Bussing Technique - every sequencer can be tied to the others... you can set the scale / tuning and have the sequencers create very musical accompaniments  


 ((( I’ve been a successful programmer ..worked on many very large software projects, written 6-7 books )  , worked on Digital Sound Synthesis 30 years ago for my doctorate in music composition .  I think this could be very successful as a commercial package )))))


-=-=-=-=-=-=-END OF SECTION   Matrix Controller –-=-=-=-=-=-=-=-=-=-=-=-


This is a picture of the Putney VCS3 patch panel

 patch panel

Conceptually the MATRIX MODULES can be routed in the same manner and the user interface will present something similar (this was my first synthesizer)








Note: There will be not website link to this blog, so please note the URL

Nested Menu

Favorite Links