Venom Development blog - Latest: Envelope Factory changes and presets + new Stereo Merge Split module

I just realized the Envelope Factory already is a fully functional envelope generator with a built in VCA! Simply patch your audio signal into the AMP input and get your envelope attenuated result at the ENV output. The only disadvantage is you can’t simultaneously get the true envelope output.

If you want velocity, then you can patch your velocity to the AMP input, and send the ENV to an external VCA.

So I am considering not adding a separate VCA expander. But I still want the 0 crossing sync option, which I can implement by using the AMP input as the audio signal input, and the ENV as the final audio out. I just need to add a button or context menu option to enable the sync feature.

Or I could simply have a VCA mode available in the context menu that would alter the labeling and functionality of the left section. When in VCA mode, the 0 crossing sync would always be enabled. For those that didn’t catch this in my earlier posts, the 0 crossing sync is used to eliminate unwanted pops when using an envelope with a very fast (or instantaneous) attack. The envelope trigger is delayed until the VCA audio input crosses 0.

The AMP would be relabeled VCA. The line between the knob and input would be dropped. The knob would be the VCA level, and the input would be for your audio.

The OFF would be relabeled VEL (velocity). Again the line would be dropped, and the knob would control velocity response (exponential to linear to logarithmic). The input would be for the actual velocity, with 10V representing 100%.

The INV output would be relabeled VCA, and would have the output of the VCA.

Any thoughts? Is this a good idea?

My preference would be for a VCA expander. Changing labeling? Not so much. $0.02.

Thanks for your input. But hear me out . . .

Normally, yes. But I am already changing labeling (and functionality) of a stage’s controls every time the Action changes. I don’t see how this is any different in that regard.

Typically something like a variable number of stages would be handled by expanders. But that doesn’t support presets, so I went with the variable width concept. It would seem odd to me to have an expander for VCA functionality, but variable width for different stage counts.

Making the left side layout adaptive just seems more coherent with the rest of the design in this case. To me anyway.

Does that alter your opinion? (perfectly fine if not)

I’m going to use it either way. :slight_smile: Just putting thoughts/preferences out there per request.

More I think on it, the more I like it. One vote dynamic labeling

It is done - and I like it! :grin:

Here is v2.16.dev14 with the new Envelope Factory VCA mode option in the context menu. I have not updated the documentation.

And here is a demo patch and video showing how using the synced internal VCA prevents unwanted clicks when using a simple Decay envelope.

Envelope Factory Synced vs normal VCA.vcv (7.5 KB)

I am using two Envelope Factories configured with identical Decay envelopes. Both are triggered by the same LFO to amplify the same polyphonic VCO signal. Use the Bogaudio Switch in the upper center to alternate between the two envelope generators.

The top Envelope Factory is in VCA mode where the envelope triggers are delayed until the internal VCA input crosses zero. This prevents unwanted clicks when using an instantaneous attack. The red and blue inputs are not in phase, so the yellow and green envelopes are slightly offset.

The bottom Envelope Factory is in normal mode. The monophonic yellow envelope is used to drive an external polyphonic VCA. The instantaneous attack causes unwanted clicks because the attack can start in the middle of the audio waves.

Hmmm, not sold on that one. I almost always want to patch the env to more than one location so that disadvantage of replacing the env output itself is pretty severe IMO. Also I often want a Stereo VCA, which the expander could provide but this does not. I like your original idea more personally.

This update is great otherwise btw.

The ENV output is still available when in VCA mode. It’s the INV output that I replaced with the VCA output. Stereo is easily handled by polyphony via the Merge Split module. I don’t see much use for Offset when using the EF as a VCA, and the Inverse output can easily be derived from the ENV output. One enhancement I am thinking about is making the VCA input AC coupled to make sure there are 0 crossings. But I am not sure I want to add that overhead, and I don’t really want another switch or context menu option.

When in standard mode you can still use the module as a VCA with the audio going into the AMP input, but then both the ENV and INV outputs are the VCA output, so indeed you lose the envelope output in that case.

Maybe I’ve done it wrong, but the latest did indeed change labels and audio passed thru, but I did not get an envelope at the output.

???!

What you describe doesn’t seem possible to me. I did not change the functionality of the ENV output.

I clearly show the VCA mode working in the video with both envelope and VCA outputs. Have you tried the accompanying patch yourself?

Can you show your patch that isn’t working?

I’m almost at the computer, I’m pretty sure I got no env out when in vca mode, but gimme few minutes.

ahhh now I see, in vca mode if I disconnect the vca input, then the envelope out stops. That may be expected but I did not expect it.

Yes - it delays the trigger until the VCA input crosses zero. A static zero is not crossing.

But now that you mention it - I should put an extra test in to fire if the input exactly equals zero.

In your SLEW module the input labels seem to have a copy&paste error.

According to the mouse-over tooltips there are two “Rise time CV” inputs and two “Fall time CV” inputs. Based on the tooltips on the asssociated attenuverters I suspect that the lower CV input sockets should be labelled “Rise shape CV input” and “Fall shape CV input”.

Ah ok. Replacing the INV does make more sense indeed. I have to say, I’m still not quite convinced though.. Using polyphony for stereo only makes sense if you weren’t already using polyphony. And even for a monophonic stereo signal, the extra handling to merge and split seems less pleasant to me than the expander would have been.

Of course, if you did do a stereo VCA expander you’d have to generate the envelope twice (assuming both sides connected), since left and right sides aren’t gonna cross zero at the same time. This would increase CPU use in the stereo case of course. IMO it would be worth doing anyway. The zero-crossing synced envelope is a really great idea, and the expander is the smoothest way I can imagine to get that running on a stereo polyphonic signal.

I understand if you don’t want the complexity though.

I am a lttle worried that waiting for zero crossings independenty on L an R could throw off the subjective perception of stereo position based on the first wavefront.

That was the plan. So up to 32 envelopes if all 16 channels of polyphony are used in stereo! But there also needs to be rules/logic for what to do if only left supplied, or only right supplied. I like not having to implement that minor complexity with my current design.

Ahh - that is where my Venom Poly Clone comes in! Send your poly gates to the Poly Clone input, set the Clone count to 2, the small Grp (group) button to “Input set” (blue), and send the Poly Clone output to your Envelope Factory Gate input. Poly Left audio goes to Venom Merge Split top input, and Poly Right audio to 2nd input. The top (merge) Merge Split output goes to EF VCA input. The VCA output goes to Merge Split bottom (split) input, and top split output is effectively your left VCA output, and the 2nd split output is your right. The Merge Split automatically splits according to the poly count in your original Merge inputs - no configuration required. Of course this solution “only” supports up to 8 poly channels of stereo.

Is this more complicated to use than a polyphonic stereo expander - absolutely. But it really isn’t bad to implement as long as you know the modules exist.

I think the majority of use cases will be monophonic mono, or simple polyphonic mono, in which case I really like the smaller footprint of my current design. For monophonic stereo it is just replacing one 3hp expander with one 3hp Merge Split plus two extra cables.

I can see how the delays might cause issues with stereo perception. I think that is worth exploring. But you don’t have to use the built in VCA mode! Just take the ENV output to your favorite VCA. I don’t see any serious benefit to having a 3 hp VCA expander vs using a standalone VCA.

Or if you don’t need a copy of the envelope elsewhere, send your audio into AMP input and get your VCA output from the ENV output.

The only compelling reason to use the EF VCA mode is to gain access to the 0 crossing sync feature. I don’t think this feature is available in any other VCV module other than my commercial Hybrid Knot, which is where the idea came from. Clicks resulting from unsynced very fast attacks are extremely irritating, and this 0 crossing sync feature solves the problem quite nicely. Maybe it is not ideal for stereo, but I am not aware of a better solution for super fast attacks.

Thanks - I will fix that for the next release

@andreya.ek.frisk

I just realized there is a major additional complication with implementing a stereo VCA expander. If the left and right envelopes are different to handle the 0 crossing sync, then I also need stereo ENV and INV outputs! So my original expander concept was flawed to begin with!

Now I am even more happy with my decision. :smiley:

Yeah true. I think what I’ll probably do for stereo is dupe the Env Factory and link the two together with the Stoermelder link module. That’ll do 16 channels when needed. And you’re right that non-stereo is likely a far more common use case.

My only head scratcher today is, I wonder if any of these builds I have added to play with new modules can affect old modules? Namely the Quad VC Polarizer seems to work properly but the knobs don’t visually indicate the level, but stay at high noon. Windows 11 user, VCV pro standalone.

:exploding_head: What the hell happened to that module ! Thanks for the report.

None of the control graphics are updating as the values are changed, including the small buttons. I didn’t intentionally make any changes. I’ll try to figure out what is going on and fix it.