Skip to content

Latest commit

 

History

1,429 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Venom

Venom modules version 2.16.2 for VCV Rack 2 are copyright 2023, 2024, 2025, 2026 Dave Benham and licensed under GNU General Public License version 3.

This is the documentation for all free Venom modules. Check out the Venom Premium site for documentation about commercial Venom modules.

Color Coded Ports
Themes
Custom Names
Parameter Locks and Custom Defaults
Venom Expander Modules
Anti-aliasing via oversampling
Acknowledgments

Module Categories

Module Index

AD/ASR
ENVELOPE
GENERATOR
AUXILLIARY
CLONE
EXPANDER
BAY MODULES BENJOLIN
OSCILLATOR
BENJOLIN
GATES
EXPANDER
BENJOLIN
VOLTS
EXPANDER
AD/ASR Envelope Generator module image Auxilliary Clone Expander module image Bay Input module image  Bay Norm module image  Bay Output module image Benjolin Oscillator module image Benjolin Gates Expander module image Benjolin Volts Expander module image
BERNOULLI
SWITCH
BERNOULLI
SWITCH
EXPANDER
BLOCKER BOUNDED
VCO
BYPASS
MODULE
CLONE
MERGE
CROSS FADE 3D DYNAMIC
AMPLIFYING
SHAPING
ENVELOPE
Bernoulli Switch module image Bernoulli Switch Expander image Blocker module image Blocker module image Bypass module image Clone Merge module image Cross Fade 3D module image DASE module image
ENVELOPE FACTORY HARMONIC
QUANTIZER
KNOB 5 LINEAR
BEATS
LINEAR
BEATS
EXPANDER
LINEAR
MERGE
LINEAR
MERGE
EXPANDER
Envelope Factory module image Harmonic Quantizer module image Knob 5 module image Linear Beats module image Linear Beats Expander module image Linear Merge module image Linear Merge module image
LOGIC MERGE
4x2
MERGE
SPLIT
MIX 4 MIX 4
STEREO
MIX EXPANDERS
Logic module image Merge 4x2 module image Merge Split module image Mix 4 module image Mix 4 Stereo module image Mix Offset Expander module image  Mix Mute Expander module image  Mix Solo Expander module image  Mix Fade Expander module image  Mix Fade2 Expander module image  Mix Pan Expander module image  Mix Send Expander module image
MOUSE
PAD
MULTI
MERGE
MULTI
SPLIT
MULTIMODE FILTER NON-OCTAVE REPEATING SCALE
INTERVALLIC QUANTIZER
NORSIQ
CHORD
TO
SCALE
Mouse Pad module image Multi Merge module image Multi Split module image Multimode Filter module image Non-Octave Repeating Scale Intervallic Quantizer image NORSIQ Chord To Scale module image
NULL
CABLE
OCTAVER PAN 3D POLY
CLONE
POLY FADE POLY
MUTE
POLY
OFFSET
POLY
PRUNE
Null Cable module image Octaver module image Pan 3D module image Poly Clone module image Poly Fade module image  module image Poly Offset module image Poly Prune module image
POLY
SAMPLE & HOLD
ANALOG SHIFT
REGISTER
POLY
SCALE
POLY
UNISON
PUSH 5 QUAD VC
POLARIZER
RATIO RECURSE RECURSE
STEREO
Poly Sample & Hold Analog Shift Register module image Poly Scale module image Poly Unison module image Push 5 module image Quad VC Polarizer module image Ratio module image RECURSE module image RECURSE STEREO module image
REFORMATION RHYTHM EXPLORER RHYTHM
EXPLORER
CV EXPANDER
SHAPED
VCA
Reformation module image Rhthm Explorer module image Rhythm Explorer CV Expander module image SHAPED VCA module image
SLEW SPHERE
TO XYZ
SPLIT
4x2
SPREAD
MERGE
SPREAD
MERGE
EXPANDER
STEREO
MERGE
SPLIT
THRU VCA
MIX 4
VCA MIX 4 STEREO
SLEW module image Sphere To XYZ module image Split 4x2 module image Spread Merge module image Spread Merge Expander module image Stereo Merge Split module image THRU module image VCA MIX 4 module image VCA Mix 4 Stereo module image
VCO LAB VCO UNIT VENOM
BLANK
WAVE
FOLDER
WAVE
MANGLER
VCO Lab module image VCO Unit module image VENOM BLANK module image WAVE FOLDER module image WAVE MANGLER module image
WAVE
MULTIPLIER
WIDGET
MENU
EXTENDER
WINCOMP WINCOMP 2 + LOGIC XM-OP
IPLIER module image WIDGET MENU EXTENDER module imiage WINCOMP module image WinComp 2 + Logic module image XM-OP module image

Color Coded Ports

All polyphonic ports use brass cores, while monophonic ports use steel cores.

Input ports are on the base faceplate color, and output ports are on a contrasting background color.

Return to Table Of Contents

Themes

The context menu of every module includes options to set the default theme and default dark theme for the Venom plugin, as well as a theme override for each module instance.

There are 4 themes to choose from.

Ivory Coal Earth Danger
Ivory theme image Coal theme image Earth theme image Danger theme image

If a module instance is set to use a specific theme, then that theme will be used regardless whether VCV Rack is set to use dark panels or not. If a module is set to use the default theme, then the VCV Rack "Use dark panels if available" setting controls which default is used. If not enabled, then the default theme is used. If enabled then the default dark theme is used.

If you want the default theme to disregard the VCV Rack dark panel setting, then simply set both defaults to the same theme.

The factory default theme is ivory, and the factory default dark theme is coal.

Return to Table Of Contents

Custom Names

Nearly every port (input or output), and every parameter (module knob, switch, or button etc.) within the Venom plugin has its own context menu option to set a custom name. Custom names only appear in context menus and hover text - they do not change the faceplate graphics.

If a parameter or port is given a custom name, then an additional option is added to restore the factory default name.

Custom names are saved with the patch and with presets, and restored upon patch or preset load. Custom names are also preserved when duplicating a module.

Parameter Locks and Custom Defaults

Nearly every parameter (module knob, switch, or button etc.) within the Venom plugin has its own parameter context menu options to lock the paramenter as well as set a custom default value. In addition, most modules have module context menu options to lock and unlock all parameters within that instance of the module. Likewise there is a "Restore all factory names" context menu option that restors factory names for all parameters and ports within that instance of the module.

Parameter lock and custom default settings are saved with the patch and with presets, and restored upon patch or preset load. Parameter lock and custom default settings are also preserved when duplicating a module.

Parameter Locks

The parameter tooltip includes the word "locked" below the parameter name when hovering over a locked parameter.

The parameter value cannot be changed by any means while the parameter is locked. All of the normal means of changing a parameter value are blocked:

  • The parameter cannot be dragged or pushed
  • Context menu value keyins are ignored
  • Double click and context menu initialization are ignored
  • Randomization requests are ignored

Custom Defaults

A custom default value overrides the factory default whenever a parameter is initialized. An additional parameter menu option is added to restore the factory default whenever a custom default is in effect.

Return to Table Of Contents

Venom Expander Modules

A number of Venom modules do not do anything on their own, but rather augment the functionality of a compatible base module when placed beside it. Each Venom base module that supports expanders has module context menu options to add expanders without having to open the module browser.

VCV Rack supports two different mechanisms for implementinig expander modules:

  • Both the parent (base) module and the expander perform work, and they communicate with each other via messages that introduce sample delays, much as cables do in VCV Rack.
  • The base module does all the work, accessing the expander inputs, outputs, and controls directly. This does not introduce any sample delays.

All Venom expanders are implemented using the second method where the base module directly accesses the expander, so Venom expanders do not introduce sample delays.

Return to Table Of Contents

Anti-aliasing via oversampling

All digital synthesis techniques must deal with anti-aliasing to get the best possible audio output. Frequencies above 50% of the sample rate (the Nyquist frequency) cannot be represented, and instead are reflected back below the Nyquist frequency. Harmonically rich wave forms like a saw wave can have harmonics above the Nyquist frequency that create inharmonic audible tones when reflected, called aliasing. These reflections are typically not wanted, so most digital systems use one or more techniques to greatly reduce the amplitude of aliased harmonics so as to make them inaudible.

Venom uses oversampling as the primary anti-alias technique. Incoming signals are upsampled by factors of 2 with interpolation to get an effective sample rate with a much higher Nyquist frequency. All the digital computations are done at this higher frequency. The end result is filtered by a low pass filter with a cutoff below the true sample rate Nyquist frequency. This process removes the high frequency content before it can be aliased, and then it is downsampled to return to the actual sample rate. Note that any pre-existing aliasing at the inputs cannot be removed - high frequency content must be removed before it is ever aliased.

The higher the degree of oversampling, the better the result, but at the cost of higer CPU usage. Another factor is the slope of the low pass filters that are used for both the upsampling interpolation and the bandlimited downsampling. The higer the filter order, the steeper the slope, which allows for preservation of more high frequency content below the Nyquist frequency. But the higher filter orders also require more CPU. So it is a balancing act to select the minimum oversampling rate and filter order that gives good results.

Most Venom modules that use oversampling have parameters on the faceplate to chose the oversample rate. A few modules have context menu options instead. For most applications, an oversample rate of 4x or 8x gives good results, without using excessive CPU. But don't be afraid to try out more or less. In some cases you may be able to turn off oversampling entirely, and still get good results, thus saving considerable CPU.

All of the Venom modules with oversampling also have a context menu option to specify the quality of the filter used. There are three options available:

  • 10th order with a cutoff at 80% of the Nyquist frequency. This is the default value used by all Venom modules.
  • 8th order with a cutoff at 80% of the Nyquist frequency.
  • 6th order with a cutoff at 50% of the Nyquist frequency.

Again, feel free to experiment to find what works best for you.

Return to Table Of Contents

Acknowledgments

Special thanks to Andrew Hanson of PathSet modules for setting up my GitHub repository, providing advice and ideas for the Rhythm Explorer and plugins in general, and for writing the initial prototype code for the Rhythm Explorer.

Also a hearty thanks to Squinky Labs for their VCV Rack Demo project, which showed me how to implement oversampling, and also got my foot in the door to understanding how to use SIMD with plugin development.

Thanks to Jacky Ligon and Andreya Ek Frisk over on the Surge Discord server for advice on the NonOctave Repeating Scale Intervallic Quantizer, as well as help with compiling a representative set of scale presets.

Super thanks to Benjamin Dill for his open source Stoermelder PackOne plugin. I could never have developed the Widget Menu Extender module or the Bypass module without his tips and source code to study.

Thanks to Paul Dempsey for his MenuTextField struct from the pachde1 plugin that allows text entry in a menu. In turn that was developed using code/ideas from the SubmarineFree plugin by David O'Rourke.

Finally thanks to Ewan Hemingway. Through discussions and studying the Befaco Even VCO source code I was able to improve the sound quality of VCO Lab and VCO Unit by adding DPW alias suppression to supplement oversampling.

Return to Table Of Contents

About

Venom VCV Rack Modules

Resources

Stars

35 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages