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:
-
16 processes (currently)
-
digital voltage-controlled LFOs (Low Frequency Oscillators) , any wave form , sine , triangle, rectangle, ramp , noise , table driven etc.
-
multiple sequencers, random voltage generator (of many types), voltage manipulation (algebraic functions) , envelope generators, modulation oscillators :: an any stage of a sequence can use any other of the controls for that step
-
any output can be processed by any other process , for Sample & Hold effects etc.
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
NOTES:
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
Conceptually the MATRIX MODULES can be routed in
the same manner and the user interface will present something similar
(this was my first synthesizer)