Venom Development blog - Latest: Ratio module + 6 others

Congrats on the fix!

I think Option 2 is fine: IMO people working in 16-poly know what they’re getting into :slight_smile: and <= 8 the difference doesn’t seem significant.

If you did Option 1 (which would be fine too) I’d suggest putting a negative qualifier on 2x–i.e. call the options something like “2x (may break with extreme modulation)” and “4x (any modulation OK)”

4 Likes

I would ship with option 2, less likely to NAN and break. Nan is just bad luck. I stop using modules that break during patching .

3 Likes

We are all on the same page so far :smiley:

I would prefer Option 2 as well :wink:

1 Like

I would choose option 2.

2 Likes

I think you should go for this option, given those CPU numbers. Put the option in the context menu and let 2x be the default. This is provided that it’s an edge case that triggers the NaN’s, and that you only estimate say max. 10% of uses would be extreme like that. If on the other hand you estimate that 50% of the uses of the module would trigger the NaN’s, then you probably have to bite the bullet and let 4x be the default, but still give the option, and maybe try and persue some more optimizations.

1 Like

What happens if you reduce the sampling frequency of the mod input to every other process and interpolate? This seems cheap. It would split any instant changes over 2 samples, so maybe that is enough to prevent NaNs?

1 Like

I think frequency would probably be at least an order of magnitude rarer, like 1% or less. If I were only creating this for myself or someone like you (whatever that means), then yeah, I would go for having options. It was my first instinct. But when I think of the general VCV populace that does not read documentation, then I get nervous, and feel like option 2 is the logical choice.

I hear you. It’s always a concern when to treat people like children and when to treat them like adults. I feel like your modules are “adult modules” and if those 1% can’t be bothered to right-click and see the context menu then f.. them (or something more polite). Don’t let the 99% suffer the 1%. I’m mentally gearing up for making modules, when I get around to it, and my weighing will at least be “don’t let the 80% suffer the 20%”.

1 Like

Interesting idea. I wouldn’t do exactly that, but I may investigate application of a low pass filter on the CV input, with a cutoff somewhere between 12 and 15 kHz. In theory that might have little to no effect on “reasonable” CV, but prevent the NANs. If it works I could enable the high pass filter by default, and offer a context menu option to disable it.

1 Like

Unfortunately, I perceive that the ratios are actually in reverse. I think the vast majority of users do not read documentation. So from their perspective, 80% are suffering the “nerd” tendencies of the 20% (or maybe even worse than that!)

2 Likes

And your work is truly too good to leave an active known bug. A bug is a big turn off, when I got excited for the DocB pulsar ( like one ripple in Sophia) it became dismay as many patches would deliver NaN. Sigh…. so much for my pulsar train oscillator ( well there are some now). But really, not everyone hangs about here catching all the gory details, make it very patch friendly and it only expand your fame and fortune ( I wish you both)

1 Like

I went ahead and implemented option 2 for the filter - always use 4x oversampling for audio rate processing to eliminate the possibility of NAN outputs, at the expense of higher CPU usage. I pushed my Blippoo Box emulation really hard, and never got a NAN

I have also made some enhancements to the SLEW module. @fractalgee reported some odd behavior with the gate outputs when oversampling is enabled. To address the issue I added a context menu option to set the slope detector sensitivity when oversampling is enabled.

I also added a polarity switch for the Slew gate outputs.

Below demonstrates the effect of the slope sensitivity when processing an audio signal, plus the new polarity option.

The top scope shows the results using the original sensitivity, and unipolar gate outputs.
The bottom scope shows the results using the new default minimum slope sensitivity, and bipolar gate outputs.

Red = slewed output
Yellow = rising gate
Green = falling gate
Blue = flat gate

The new 2.14.0dev2 binaries are available on github below for those with a free user account:

6 Likes

I finally wrote the Multimode Filter documentation

I am happy with the module layout, but there are a lot of interrelated concepts that made the documentation difficult to write. Let me know if I need to if I need to make changes to the document.

10 Likes

I just had a quick look at the document and think it’s quite good.
In my opinion, nothing needs to be changed.
:+1:

3 Likes

I submitted Venom v2.14.0 to the library with the new Multimode Filter plus enhancements to XM-OP and Slew

14 Likes

:raising_hands:

Congratulations! Wonderful news!

1 Like

I added a Glacial speed to AD/ASR that supports stage lengths up to 48 minutes!

I bumped up the next release version number to 2.14.1 and modified my library submission.

For anyone that is impatient, you can get the new binaries below.

9 Likes

Within days of v2.14.1 hitting the library, of course I got a request for an enhancement - and it was a good one.

Well I couldn’t fit more controls/inputs on the panel, but I could enhance the Morph capabilities, and that spawned a round of improvements and a bug fix. I’ve got a new v2.14.2dev beta version for testing with the following changes:

Enhancements

  • Multimode Filter
    • Four new Morph modes
      • Dry ↔ Wet LP
      • Dry ↔ Wet HP
      • Dry ↔ Wet BP
      • Dry ↔ Wet Notch
    • New input coupling option button
      • DC (default) - old behavior
      • AC - This can eliminate saturation asymmetry when the input has a DC offset
    • New Gain VCA polarity option button
      • Unipolar (default) - old behavior
      • Bipolar - This can only have an effect with Gain CV
    • Gain range extended to 10
      • CV now scaled at 1 per Volt instead of 0.2 per Volt
      • Effective gain now clamped to 0V - 10V or -10V - 10V, depending on VCA polarity
      • This can be a breaking change for old patches with Gain CV. Reduce the Gain CV amount to 20% of the old value to restore the original behavior (at least for most instances)

Bug Fix

  • Multimode Filter Notch output was inverted

The documentation has been updated

The beta binaries are available to anyone with a free github user account:

I’d love to get some people to test the modifications and make sure I don’t need to tweak anything. I hope to release these changes to the library within a week or so.

6 Likes

Hi Dave,

I tried the new version a bit,
I couldn’t find any bugs yet,
I like the new morph mode very much
:+1:

all seems to work as expected here.
I will test more tomorrow.

2 Likes