Venom Development blog - v2.10 submitted to library

I have started development for Venom v2.10.

Here are the changes I have so far:

2.10.0dev

New Modules

  • VCO Unit

Enhancements

  • VCO Lab
    • Sum of Level parameter and Level CV now limited to 100%
      • Module context option to disable Level limit
      • Old patches default to unlimited
    • Level CV can now be configured for unipolar or bipolar (ring mod) input
      • Default is unipolar
      • Old patches default to bipolar
    • Level CV Ring Mod context menu option renamed VCA unity = 5V
    • Square Full PWM shape option color changed from blue to orange to match new VCO Unit module

Stable binaries are available at New VCO Unit module · DaveBenham/VenomModules@9353c48 · GitHub

VCOUnit

@Schabbes requested a much smaller version of VCO Lab with only one selectable waveform output at a time. I liked the idea, and VCO Unit is the result.

I have also made a number of VCO changes for the VCO Lab Level controls, and incorporated that design into VCO Unit. Besides increasing versatility, I think the changes make the Level section more intuitive.

I plan to develop two additional modules for this release:

Mouse Pad

Inspired by @ScreenSlave’s Controller Strip Effect post, I constructed a prototype as a proof of concept using existing modules. It allows you to press the Alt key and move the mouse to generate X and Y CV values. The intent is to provide a virtual 2D controller pad that is always available - no need to interact with a particular module.

Circle Fade

A circular cross fade for up to 16 channels of a polyphonic input. The width and envelope shape for each channel will be controllable. The channels will be distributed evenly around the time circle, but the envelope width allows many channels to overlap if you want. This will have similar functionality to the Crystal Palace Perspex, and Geodesics Pulsars, but of course with my own twists.

I’ve got a working prototype composed of existing modules, but I may simply wait until I can post the actual module.

23 Likes

Here are some waveform transformation options I plan to add to VCO Unit and probably VCO Lab. These are prototypes I implemented via VCO Lab. The Triangle, Square, and Saw waveforms will each get additional shape modes to access these transformations.

Perhaps the most important is the Saw transformation that includes the even waveform from the Befaco Even module. It has only even harmonics plus the fundamental. I talk about construction of this waveform at Constructing a Befaco even waveform with VCO Lab

Prototype Venom waveform morphing.vcv (6.4 KB)

5 Likes

I’ve added the following waveform morphing shape options to both VCO Unit and VCO Lab:

  • Triangle: sine ↔ triangle ↔ square
  • Square: triangle ↔ square ↔ saw
  • Saw: square ↔ saw ↔ even

The Saw Normalized Rectify option effectively morphs triangle ↔ saw ↔ triangle

Binaries for v2.10.0dev2 are available at Fix global phase modulation of morphed waveforms · DaveBenham/VenomModules@a0f1c7b · GitHub

5 Likes

I’m playing around with two VCO Units modulating each other in various ways and am very happy with them.

Modulating the shape with a second oscillator is a really nice feature, especially with all those shape modes.

Maybe another morph on the Sine: sine ↔ triangle ↔ saw ↔ square ↔ impulse - to have that very common option in place, too ? It wouldn’t be symmetrical as the others that way, though…

Another interesting option is to use the offset as a mixer, so you don’t need a mixer to mix the ouputs of multiple VCOs and can just connect them to each others offset input, effectively chaining them. Should work the same way as a mixer, right? Except that the input can never get louder than the oscillator it’s plugged into.

Yes indeed. It is not something I knowingly designed for, but I did stumble on that initially with the VCO Lab. The Mix offset effectively allows VCO Lab to function as a VCA, independent from the waveform outputs. You can have 4 different waveform outputs, with none of the waveforms going to the Mix, and then you patch any signal into the Mix offset at full strength. Patch your envelope into the Mix Level, set the Mix Level to 0% (unless you want bias), and the Mix Level CV Amount to whatever level you want, and you have a traditional VCA. With the currently released version the VCA is always 4 quadrant (bipolar, ring modulating). But for the upcoming 2.10 release the VCA defaults to traditional 2 quadrant (unipolar), with the option for bipolar.

Yeah, not having a morph mode for Sine has been bugging me.

I have always thought the (typically wave table?) VCOs that morph from sin ↔ triangle ↔ saw ↔ square ↔ variable pulse were kind of cool, but inconvenient to modulate. I never wanted to modulate through the entire range, but rather wanted to stay within a small region.

So instead I have added square ↔ sine ↔ saw morphing to the sine on both VCO Unit and VCO Lab. With that change, every waveform transformation is covered somewhere, you just can’t morph between all of them simultaneously.

New v2.10.0dev3 binaries are available at Update changelog.md · DaveBenham/VenomModules@cdb3cf1 · GitHub

2 Likes

Perfect! Loving these oscillators! Thank you!

1 Like

Hi Dave!

Your collection is growing fast and has become one of my stock collections. I have one tiny request though: I use the shaped vca quit a lot to set curves for control knobs and CV modulation. Is it possible to have a log<->lin<->exp curve in the context menu of your knobs module? Or an expander? Don’t know if this is feasable… anyway thanks!

Interesting idea - I get it. But I don’t think I will implement that. Maybe I’ll change my mind in the future, but only if I find myself patching and wishing I had that feature.

1 Like

Fair enough :slight_smile: No worries! It is a luxury request.

I’ve got a new dev version for y’all to try out, v2.10.0dev5. Link for binaries below

Besides the finished VCO Unit, It has the new, fully functional Poly Fade module for cross fading the channels of a polyphonic input. I don’t have any documentation for it yet.

Warning - I make no promises that patches made with this dev version of Poly Fade will work with the final release.

Here is a patch and video that makes use of both.

Poly Fade Test.vcv (5.7 KB)

I could use some help finalizing the name and feature set.

Poly Fade is an OK name, but it can do more than just cross fade.

Here are a couple other names I have considered:

  • Poly Rotor
  • Rotary Fade

I think most of you can figure out what it does without docs. I will say that the Phasor and internal oscillator are summed to create the final phasor that drives the rotor. For the demo, the direction is set to off so only the external phasor is driving the module.

Things I am thinking of adding:

  • Phasor output (almost sure I want this)
  • Level control (VCA) for the final Sum output. Would be nice, but I’m not convinced it is necessary.
  • Oversampling option(s) for driving at audio rates. I won’t know if this is worthwhile until I try it.
  • An expander for additional voices (different start and/or phasor and/or inputs)

One thing I don’t like is the clicks while changing the channel count and/or the start channel. But I can’t think of a practical way to eliminate this.

One other thing, the rise and fall shapes are swapped when running backwards, meaning the rise becomes the fall, and vice versa. I tried to automatically swap, but it caused additional clicks, so I am going to consider this a feature.

Let me know what you think. I am open to suggestions

6 Likes

A couple more questions:

Should I rename the Rise and Fall parameters because their functions are reversed when going backward? If so, to what?

Should I add a dedicated poly Envelopes output? As currently configured, you get the individual channel envelopes if you leave the input unpatched because it is normalled to 10V. But there is no way to cross fade between poly channels of an input and get the envelopes at the same time. But will anyone ever use both Envelope and CrossFade poly outputs at the same time?

But… That is most definitely sure. That actually does sound rather interesting to try

just flip the letters left to right ? Rise becomes esiR and Fall becomes llaF, cooler if it is actually truly flipped like it’s written in a right to left script

3 Likes

Thanks. I was hoping at least one other person would express interest in simultaneous cross fade output and envelope output. But I am leaning towards doing that.

For the Rise / Fall shape names - I’m not looking to dynamically change the label, but rather different parameter names that better describe the behavior. I thought of Left ramp shape and Right ramp shape. I like that because it is appropriate for both forward and backward phasors. But I don’t display the ramps, so it is not so easy to visualize the meaning.

I now have a tentative final version of Poly Fade in v2.10.0dev6 with documentation. I would love to hear some feedback, and obviously, let me know if you find any bugs or design issues.

PolyFade

I ended up implementing everything but the expander and the oversampling.

The oversampling would have required a major refactoring of the code, and I am reluctant to put in that effort when I am dubious as to how effective it will be or how much it would be used.

I will likely create an expander in the future.

I just have the Virtual Mouse Pad module to create and then I will be ready to release.

1 Like

Playing around with different combinations of MIX4 and Bandana I’m thinking… maybe an expander for modulation inputs could be nice, it would look exactly like MIX4, with 4 inputs for modulation and the knobs for modulation depth.

It wouldn’t make sense with the VCA-MIX4s, though… but… you might make them completely obsolete with another expander for individual outputs…

Just some thoughts - might streamline the whole thing a bit more that way, and add the option to add a bit of modulation to any channel if wanted, without having to decide beforehand on the mixer choice or if you want individual outputs later on.

MIX4 would always be the mixer of choice and any functionality could be added with expanders at any point.

That Bandana does have a really nice design.

I don’t understand the functionality of your proposed expander. This would be an expander for Mix 4? What would it do? What kind of modulation?

I don’t see the point of creating an expander for Mix 4 that would replace VCA MIX 4 because Mix 4 + an expander would be wider and less convenient than the VCA Mix 4.

The only disappointment I have with the collection is the width of VCA Mix 4 Stereo. I could have made it significantly narrower, but that would completely disrupt the design and make it completely different than the other 3.

But I just had a thought - I could create a new VCA Mix 4 Stereo V2 that would incorporate Mute and Solo buttons. It would work with all the existing Mix expanders, except for the Mute and Solo expanders that would no longer be needed. That sounds like a really nice compact stereo mixer to me.

The expander would turn MIX 4 into an advanced VCA MIX 4, by adding modulation inputs with depth like on the Bandana. You would have independent level and VCA modulation depth for each channel, allowing to add just a bit of VCA modulation if you want. So it would be more versatile than VCA MIX 4, except for not having the individual outputs.

Ahh - I get it now. I will think about it. Thanks.

And I just realized my idea to incorporate mute and solo buttons into the VCA Mix 4 Stereo won’t work because there isn’t room for the mute and solo inputs :frowning:

After thinking about this some more, I am inclined to create a poly version of Bandana rather than add any more expanders to my existing mixer collection. I really do like the design of Bandana. If I do it, it will probably be 5hp instead of 4hp.

Yeah, this is a cool module. And you wouldn’t want to make it bigger. Similar, but different from my old mixers, lots of cool features hidden in there. smaller, too, which is a very good thing.

1 Like