Peter Blasser inspired Bounded Oscillation

I believe I successfully implemented the following in VCV rack. The oscillator rise and fall rates are constant, but the oscillator frequency changes by modulating the lower and upper bounds of the oscillation.

I ran across this concept at

Did you ever get it to work @koen.kaptijn ?

I found I needed to use a windowed comparator (comparator with a tolerance factor). My implementation produces an ascending ramp wave. The Thru module introduces some sample delays. I empirically found the sample delay count that required the smallest tolerance factor possible.

I used an extra comparator to allow for the bounding oscillators to switch places as to which is the min boundary and which is the max. The purple cables from the 2nd WinComp are just a wacky way of supplying a constant 10V signal to offset the fall time to the minimum supported value so that when switching the slew source to the min input for one sample the output instantly reaches that min value. I didn’t feel like adding an additional module for the constant CV.

Bounded Oscillation.vcv (3.4 KB)

Once I had the bounded oscillation working I decided to have some fun with it, and created the following.

Sequenced Bounded Oscillation.vcv (5.2 KB)

I believe Peter’s Bound/Bounce oscillators can produce bounded triangle waveforms. I tried to emulate this in VCV, but it was not stable. I am thinking of creating one or more Venom modules that will do this. Perhaps some variation of Peter’s Fourses and/or Swoop modules.

9 Likes

Great Dave! No I never got it to work properly –I was trying it with a triangle wave and having a symmetry/skew control on it. But I got distracted and left it –occasionally revisiting it with experiments, but no big things really. Excited to see where this will lead you!

A bit more hardware oriented, but this is also a very insightfull read on the concept, written by the same Richard Brewster (aka Pugix):

He analyzes and reconstructs an old schematic of a predecessor of the wonderful Sidrax Organ by Peter Blasser/Ciat Lonbarde and gives an interesting insight on the bounds modulation on it. Maybe it will inspire you.

1 Like

Super cool … I love my IFM modules, especially Fourses is a mighty beast! I would happily pay for another Venom collection inspired by Peter Blasser :wink:

1 Like

+1 for Fourses, et al ports (unzips wallet…)

1 Like

In my excitement, I want to share this excellent resource of the bounce/bound concept as used by Peter Blasser. It is in the users guide of the Sidrax, written by Josh Singer (ieat31415). On page 5 and 6 he explains it really well.

Edit: I do not know for sure if the link above works, but you can find the same document here:

1 Like

Thanks! I imagine it will take time to digest all that. Based on a quick scan it looks like it will be easier to understand than Peter’s impenetrable writing style. I hope it can give me insight as to what happens if the lower bound exceeds the upper bound. For my patch I used a comparator with min/max outputs to switch the roles as needed. But the little I have read from Peter implies his creations have some other behavior that I do not understand.

The last link I shared (Josh Singer) is explaining it in more common math. But yeah, Peter’s writings are enigmatic on purpose –once you get to know his instruments better, they start to make sense more and more. But for a start it surely is not an easy read.

So on the other hand…

Iin the last hour I’ve just started goofing around with the Live Link modules for VCV, Max, et al… and re-zipping my wallet…. Mind blown.

That Sidrax guide has helped tremendously already! The following paragraph explained what happens when the low bound is above the high:

When a bound is assigned as lower, it means that it acts like a floor, or bottom to the oscillator. When the upper bound goes lower than the lower bound, the oscillator has nowhere to go and simply tracks the lower bound. Conversely, when the upper bound is greater (like the default setting), the oscillator will color in the window between the bounds.

I have figured out a compact way to implement the bounded skewable triangle oscillation with existing modules.

Bounded Skewable Triangle VCO.vcv (5.0 KB)

The Bounded VCO is on the bottom row. The brown modules are the user interface - only use the labeled controls and ports. The black modules are the internals that should not be manipulated.

I don’t have the energy to document how the patch works. Let me know if you want an explanation, and I will try to find time in the future.

I would like the frequency to remain constant as the skew is modulated (assuming constant bounds). But I have not bothered to figure out the math. Never-the-less, this patch is a lot of fun to play with. All kinds of crazy sounds are available as you manipulate the bounds (waveform, shape, offset, frequency, dynamic modulation, etc.), as well as the Bounded VCO skew and frequency.

The patch is mostly stable, though it is possible to temporarily get in a state where the VCO improperly tracks the low bounds even though the low is below the high. I think it generally happens when the Bounded VCO frequency is similar to the bounds frequencies, and it is kind of a rare event. I believe it stems from undesired but unavoidable sample delays within the implementation.

If you always want to oscillate between the bounds, regardless which is higher, then patch the two VCOs to another WinComp and feed the min output to the Bounded VCO min input and max output to the Bounded VCO max input.

I believe I can create a dedicated Venom module that properly oscillates between the bounds, without any undesired idiosyncrasies. I plan to have summable knob + attenuverted CV input for each control. I should also be able to add oversampling. This basic module should be part of the next Venom free release.

Once I get that released I may investigate emulating some of Peter Blasser’s more complex creations that rely on the bounded VCO, and package them up into a premium plugin.

I will document module development in my dev thread, but feel free to post here about the existing emulation(s) in this thread. I would love to see what people can do with them!

5 Likes

This thing is bonkers: a wave within the waves. The ternary wave emerges. Sometimes math is beautiful like this. Lost a few hours already to the most bizarre noises contained within. Thank you once again Dave for your continued generosity.

PS. Am I right in thinking this is kind of a similar synthesis technique to that used in Sofias daughter ?

1 Like

I don’t think so.

The Ripple elements do have a bounding envelope, but the envelope only modulates the Ripple amplitude, not the frequency.

In the Bounded VCO the bounds modulate both the amplitude and frequency.

1 Like

I have a working module in development in my dev topec.

1 Like