F-OSC
I originally set out to create a fart-oscillator for today (April 1st). However, I accidentally ended up with something, that might actually be useful :D.
The F-Oscillator is a complex oscillator based around delaying the signal inside a phase modulation feedback loop.
(so F stands for FM and Feedback now)
Which waveform of OSC 2 is used for the phase modulation feedback isn’t hardwired. Instead, you can chose one of the three waveforms by creating a cable from the output, to the feedback input.
Normally (also in version 1), the movement in the sound you get from offsetting the frequency of two oscillators gets faster as you play higher notes.
However, in version 2 of the F-OSC, the Hz offset between OSC 1 and 2 remains the same when other notes are played. This way, the movement doesn’t speed up when higher notes are played, which means you can use the frequency offset to create rhythms that stay the same across all notes. Going even further in this direction, I’ve added the option to control the speed of these rhythms via a clock input, so you can synchronize them with other elements in a patch.
(This documentation is for version 2. The difference is that version 2 has different / more control over the frequency offset between OSC 1 and 2. Version 1 only has a fine tune knob and no option to sync the oscillators.)
I/O
Input | Signal Range | Notes |
---|---|---|
![]() |
1/octave |
Sets the base frequency which is used by the feedback delay and OSC 1 & 2. |
![]() |
clock (1 - 0) |
When a clock signal is put in here, the frequency offset between the two oscillators will be controlled by that clock signal instead of the ‘motion‘ knob (for syncing rhythms to other elements in a patch). |
![]() |
gate (0 - 1) |
Synchronizes OSC 1 & 2 and therefore resets the rhythm produced by the frequency offset between the two. |
![]() |
audio (-1 - 1) |
input for phase modulation feedback |
Output | Signal Range | Notes |
---|---|---|
![]() |
audio (-1 - 1) |
waveform output of OSC 1 |
![]() |
audio (-1 - 1) |
waveform outputs of OSC 2 (you can connect one of these to the feedback input to create the phase modulation feedback loop) |
Controls
Knob | Function | Notes |
---|---|---|
![]() |
OSC 1 ratio |
Determines the number that the base frequency is multiplied by (for OSC 1). |
![]() |
OSC 1 shape |
Changes the shape of OSC1s waveform |
![]() |
PM feedback delay time |
Determines how much the signal that is fed into the feedback input is delayed, before it is used to modulate the phase of OSC 2. The delay time is also controlled by the 1/octave input. |
![]() |
delay time modulation by OSC 1 |
Controls how much OSC 1 is used to modulate the feedback delay. |
![]() |
OSC 2 shape |
Changes the shape of OSC2s waveforms |
![]() |
PM feedback -> OSC 2 |
Controls how much the signal coming form the feedback delay is used to modulate the phase of OSC 2. |
![]() |
PM OSC 1 -> OSC 2 |
Controls how much OSC 1 is used to modulate the phase of OSC 2. |
![]() |
motion |
Can be used to set the frequency offset between the two oscillators. (even when the offset is controlled by the clock input, the polarity (±) of the offset is still determined by this knob) |
![]() |
OSC 2 phase |
Determines the phase OSC 2 is reset too when the sync input receives a gate signal. This can be used to select a starting position in the movement / rhythm. |
Displays
Meter | Displays | Notes |
---|---|---|
![]() |
the number that the base frequency is multiplied by for OSC 1 (set by the ‘ratio‘ knob) |
|
![]() |
whether the frequency offset between OSC 1 and 2 is determined by the clock input or the 'motion’ knob |
Version History
Revision | File | Date | Notes |
---|---|---|---|
2.0 | F-OSC.audulus (77.5 KB) | 04/02/2021 | |
1.0 | F-OSC.audulus (40.2 KB) | 04/01/2021 |
Demos
Revision | File | Date | Notes |
---|---|---|---|
1.0 | Flatulent FM.audulus (53.6 KB) | 04/01/2021 | Demo for v1.0 |