I have begun development for the next version (2.16) of the free Venom modules. It will probably take quite some time for release - I have a significant backlog of ideas that I want to include. Note I have decided I will create the hybrid Envelope Generator / VCA / Wave Shaper that I talked about earlier.
The first module that I have created is Bounded VCO - an implementation of Peter Blasser’s Bounds/Bounce oscillation concept. The slopes of an oscillator wave remain constant, and the frequency changes as the min and max (bounds) change. See the following thread for more info and some emulations created by existing modules:
Here is the module as it currently stands.
The binaries for v2.16.dev1 are available below to anyone with a free GitHub account
No documentation yet, so I will briefly describe the controls and ports. All parameters have a main knob plus a CV input with attenuverter. The attenuated CV is always summed with the main knob value.
Note - the module is fully polyphonic!
SLOW button - puts the module in LFO mode if enabled. The module runs at audio rates by default.
OVER button - Typical oversample options for Venom modules: Off, x2, x4, x8, x16, x32
SWAP button - If enabled then automatically swaps the Floor and Ceiling values if the Floor rises above the Ceiling. If Swap is not enabled then the oscillator simply tracks the Floor if the Floor rises above the ceiling, rather than bouncing between the Floor and Ceiling.
FREQ - Specifies the frequency of the oscillator when the bounds are constant with 10V peak to peak oscillation. The CV is scaled 1V/Oct
SKEW - Specifies the shape of the oscillation, ranging from decending ramp at 1%, triangle at 50%, and ascending ramp at 99%. The numeric value represents the percentage of the wave cycle devoted to the rising portion of the wave. The fall is simply 100% - skew%. CV is scaled 10% per volt
The Freq and Skew values are enough to specify the rise and fall slopes.
FLOOR - Specifies the minimum voltage for the oscillator
CEILING - Specifies the maximum voltage for the oscillator
TRI - The primary “triangle” output showing the oscillator bounce between the floor and ceiling. Although the shape need not be a traditional synth triangle waveform, it always is a triangle from a geometric standpoint. Afterall, a saw wave is simply a right triangle.
PULSE - Outputs a bipolar pulse wave with +5V high whenever the TRI output is rising, and -5V low when the TRI output is falling.
Here is a simple demo image showing the module in action. The left trace is with the Swap disabled. The right trace is with the Swap enabled. Yellow is the ceiling trace, red the floor, and green the bounded oscillation. The blue is the pulse output.
I am very happy with the results. I have managed to emulate the IFM Fourses module using four copies of the Bounded VCO.
I would love some feedback, especially from anyone that has experience with the Bounds/Bounce oscillations in the Ieaskul F. Mobenthey or Ciat-Lonbarde lineup.
Note that the Bounded VCO algorithm is more sophisticated than the simple slew I used in the prototypes with existing modules. Slew simply places the triangle at the current bound value when an intersection is detected. The module actually computes where the true intersection is using the current slope, and then places the triangle at the correct bounced value using the reflected slope.

