sub-oscillator

amoniker's icon

Hello all
I am in the process of creating my own max synthesizer. I have it all patched up using two sets of 3 oscillators (saw, rect, tri) but I want to add another oscillator. I was wondering if anyone can think of a way to create a sub-oscillator? I know that it is a low octave oscillator chained to a master oscillator, but I don't understand how this is done in max.
Any help is appreciated

Christopher Dobrian's icon

I think what's usually meant by the term "sub-oscillator" is a rich waveform an octave lower than the main tone. Try using a rect~ object with a frequency equal to 1/2 that of the main oscillator.

Wetterberg's icon

normally either a square wave or a sine wave, with a switch to set one or two octaves below.

roger.carruthers's icon
Max Patch
Copy patch and select New From Clipboard in Max.

This is what I usually do - wrap it in an up-sampled poly to reduce aliasing.
Cheers
Roger

amoniker's icon

@ Wetterburg and christopher

In my synth i already have the oscillators set up to that i can set a square wave to half the freq of another oscillator, this however does not sound like a sub-osc. It just sounds like a regular 2 vco synth.

@roger carruthers

OK i think i understand what you did there, but it just sort of sounds like a clicky square wave.
i found this online
"A circuit which, when fed an input signal of a certain frequency, produces an output of exactly half that frequency, which is one octave lower. Octave dividers use a flip-flop circuit which changes its state on each leading (or trailing) edge of the input signal, which implies that the output takes the form of a square wave. A more general form of the circuit uses a counter, which counts the number of rising edges of the input signal and changes the state of the output each time a certain count is reached; such a circuit can divide the input frequency by any integer value (2, 3, 4, etc.)"

how would i go about doing this in max?

Roman Thilenius's icon

there are dozens of ways how to build an octave divider, but it is not half as useful as just running an parallel oscillator tuned down for 1-3 octaves.

Wetterberg's icon

...if you divide the outgoing squarewave by two you get the squarewave one octave lower - if it doesn't "sound" like a sub-oscillator, then I suspect there's something wrong with your code.

Max Patch
Copy patch and select New From Clipboard in Max.

You can do it with phasor~ (to run your main oscillators) and a rate~ - here's an example using cycle~ - but I don't know if it'll work for your patch...

Christopher Dobrian's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Here's a sawtooth by itself, a sawtooth added to a square an octave lower, and a sawtooth multiplied by a square an octave lower (an harmonic tone ring modulated by another harmonic tone an octave lower results in an harmonic tone).

Max Patch
Copy patch and select New From Clipboard in Max.

And here's something like what your source described, flipping every other cycle upside down, resulting in a tone an octave lower. (Works only for tones that you can synchronize perfectly with your flipper.)

amoniker's icon

I did some research and i believe that using a flip-flop octave divider may result in a different sound than just running parallel oscillators.
analog Flip-flop octave divider circuits are used in many guitar pedals to put out huge bass tones from just a guitar (EHX Octave multiplexer). The juno 60 uses flip flops to derive its sub oscillator from existing oscillators

The three examples given in this thread use multiple oscillators, and the last patch christopher posted seems to be like what I'm going for, but it produces a try wave when it should be square.

from what I've read the best sub oscs are derived from a saw signal, the sub square wave is just a lower octave result of the original saw signal run through flip flop octave divider that lowers the tone and transforms the saw into a square that is then mixed with the original saw. is this correct or am i misinterpreting things?

Ive tried researching more into making a flip flop octave divider is max, but the examples i find have to do with boolean logic gates and i can't figure out how that translates in max.

I guess now my real inquiry is about how to make a flip-flop octave divider.

amoniker's icon

Okay i've been doing more research and i downloaded some externals that are basically boolean logic gates inside max (Llogic from the Lobjects collection).
I can create the D-type flip flop circuit described here, http://www.electronics-tutorials.ws/sequential/seq_4.html, but for some reason it won't run, it just causes a stack overflow. anyone know how to get this working?

I've included the patch and external used

Llogic.mxo_.zip
zip
boo.maxpat
Max Patch