gen~ : oscillator without delays lines or cos/sin function. how is it possible ?

lucas boutignon's icon

hello!

i've been working on waveguides for a little while, and i've been curious of creating a model that could produce an oscillation without using a "long" delay line , but only 1 samples feedback loops.

i realized that in some situation, manipulating the gain of a really short delay line could produce low oscillations. i am surprised by that and i don't understand how it's possible. i have a here an example of an oscillator that is almost in tune, that can create almost any frequency without the use of a "long" delay line, or a wavetable, or a sine/cosine object.

it seems like this system is a self-sustained oscillator, as it produces a periodic oscillation without any periodic input. through trial an errors, i found the formulas in order to tune the oscillator and define its frequency properly, and also to adjust the output's amplitude accordingly.

does anybody know if this oscillator could be useful ? i wonder how this is even possible. at least, adding some fm modulation and self modulation can create interesting chaotic sounds, that are a bit different from the sounds achieved with more traditional, parametric oscillators.

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

Roman Thilenius's icon

there is a number of possible reasons for "deeper" frequencies, f.e. the base frequency is usually the sum of the fractional delays, then there is the the required interpolation of their output which can also come to play.

i havent looked at your code (and i am all but an expert to the topic) but if there are allpassfilters included somewhere, their effective feedback time is far longer, even if it looks like it would be only 1 sample.

👽!t W∆s ∆lienz!👽's icon

that's beautiful! you've discovered your own oscillator algo, i think it might be stemming from the basics of Karplus-Strong synthesis, but i could be wrong. i love how you guide it into a steady and smooth oscillation, though!

one thing to note is that the sampling rate changes the output frequency(according to the comparison with the cycle~ object you included, you must've tried all this out at 44.1kHz sampling-rate, if you try others you'll see how to tune it according to sample-rate, too).

another thing is that it seems to have an upper ceiling of frequency which is less than what cycle~ can output(i've no idea why that is, but just mentioning as it can effect how it will do in modulated circumstances).

beautiful discovery, all in all 🍻