Wednesday, 2 May 2018

Quadrant Controlled Oscillator

If you imagine (x,y) coordinate system, it's split into four quadrants, quadrant one most commonly containing a waveform's crest and quadrant four waveform's trough. The point (0,0) is a zero-crossing point of a waveform.

Waveform shape and the sound are mostly controlled by moving the points that define waveform's shape:



Points determine the line's path. Points A on the left and right of waveform are the same point. B1 (and it's opposite counterpart D1) could be moved left-right-up-down. Moving it from extreme left to the middle, to the right of the quadrant gives a smooth morph from sawtooth, to triangle, to ramp up (with 180 degree phase).
Points B2, D2 are dormant unless engaged via button, and they add a knee for extra waveshaping. Such is Minimoog sharktooth, CS80 "cut saw", but also much more complex waveforms. Could move freely on x and y axis (perhaps all the way up/down into neighboring quadrant for more sonical possibilities?)

Point C is the center. There are actually two points, C1 and C2, C2 being inactive unless engaged.

Both can move freely on y axis, giving ability to, for example, morph from square wave to sawtooth to sawtooth twice the frequency:


If given the ability to move C points left to right, quadrant synthesis can produce width modulation. If C points can move independently from each other on x axis, it will give some new interesting "PWM"-ish results. All other points in the plane (like D2) should move proportionally to the "PWM amount".


Another feature is distortion/clipping/wavefolding:


Users sets an offset (threshold) and uses a dedicated knob for action: fully CCW, no effect. Rotating towards 12 o'clock, the "tip" of the waveform is getting attenuated, at 12 o'clock, there's a simple distortion (just clipping at threshold). Clockwise, tip of the waveform gets folded back. Fuly CW, it's wavefolding to its full extent (it's an open question what "full extent" is - mirrored image of the tip? All the way down to the other quadrant?)

Important thing: clipping doesn't need to be determined by an offset of constant voltage. Any (external or internal) oscillator can be used: if we use a sawtooth input (not necessarily in frequency sync), it could be used as in picture above. (I believe this could be done with some logic like Doepfer minimum-maximum, after the incoming signal is attenuated and offset). This would produce nice pseudo-filter and phaser effects.


And finally, another useful feature would be curvature. Per line segment, bipolar knob. If certain points are dormant, it would affect the line bounded by two closest active points.This could give any thing from parabolic waveforms of DX/TX series to spikey Ion/Micron type.  This one, however, although useful might be too much complication, both for implementation and user interface.


In summary:

Point A: moves only up or down, if points B1, D1 are on the same y axis it has no effect. Otherwise, it determines waveforms shape or phase angle.

Points B1, D1 move freely on y axis and between A and C on x axis. They determine the main shape of the waveform.

Points B2,D2 are additional points for more complex shapes. They can be turned on or off. Range: between B1(D1) and C on x axis, anywhere on y axis.

Points C1 and C2 represent zero-crossing point, but they can move anywhere, drastically changing the shape of the waveformor adding pulse width. C2 could be turned on or off.


Controls for parameters (ideal case):

(1) bipolar knob for A;
(2) bipolar knob for B1 x axis;
(3) bipolar knob for B1 y axis;
        - button for linking movement of B1 and D1;
(4) bipolar knob for B2 x axis;
(5) bipolar knob for B2 y axis;
        - button for engaging B2 and linking movement with D2;
(6) bipolar knob for C1 x axis;
(7) bipolar knob for C1 y axis;
        - button for engaging C2 and linking movement with C2;
(8) bipolar knob for C2 x axis;
(9) bipolar knob for C2 y axis;
(10) bipolar knob for D1 x axis;
(11) bipolar knob for D1 y axis;
(12) bipolar knob for D2 x axis;
(13) bipolar knob for D2 y axis;
        - button for engaging D2; 

(14-19) six bipolar knobs for curvature (lines: A-B1, B1-B2, B2-C, C-D2, D2-D1, D1-A);

(20) unipolar knob for clipping/wavefolder threshold (+V);
(21) unipolar knob for clipping/wavefolder threshold (-V);

(22-23) internal/external voltage source selector for clipping.