Polyphonic Effects Modules

Inspired by the recent thread on polyphonic utilities and a few other discussions, I thought I’d start one on polyphonic effects, or audio processing modules.

What does that mean? Genuinely polyphonic effects modules apply a discrete instance of the effect on each channel with a polyphonic input. If you think about the traditional pedal format in hardware, you can think it as splitting your signal into multiple cables, and sending each one to an identical but separate pedal. For example, say you have a flanger pedal. Now imagine you buy sixteen of them and run them in parallel, what would that sound like? Probably not great if they’re all on the same setting. But imagine you can change all the settings at once on all the pedals (polyphonic modulation).

I’ve included a few filters where they have effects modes, although any filter is an audio effect, some filters have comb, resonator, or phaser modes for example.

Also, some modules are labelled polyphonic but actually just accept a poly input and sum it to mono or stereo signals. We’ve already had that debate, so for the list here I’m only including poly modules that fit my definition of discrete processing per channel.

Here’s a quick list, which I’ve split by free and premium. It’s not at all comprehensive, so feel free to suggest any additions or a better way to categorise.

Free:

Sapphire: Echo

Airwindows: all effects (I think)

DocB: CWF, CWS, LWF, CLP, JWS (wavefolders), AP (allpass filter), DRM (ring mod)

Surge XT: Chorus, Phaser, Flanger, Filter, Nimbus (Clouds), Frequency Shifter, Bonsai, CXOR, TreeMonster, Combulator, Ensemble, Resonator, Chow, RingMod, Neuron, Vocoder, Distortion

Bisset: It’s Good Cholesterol (takes mono or stereo input, but can produce poly output via multiple playheads)

Blamsoft: XFX filter (insane effects modes!)

Bogaudio: Pan, LMTR (limiter), CLPR (clipper), Pressor (compressor), CVD (delay)

Count Modula: Rectifier, Mangler

KRT: J (all-pass filter/phaser), G (Compressor)

Mockba Modular: Pannah, ASSprdr (stereo spread), Tuube

Sanguine Mutants: Anuli (MI Rings clone, can process audio), Mutuus/Incurvationes/Distortiones (MI Warps clones), Werewolf (distortion)

Stocaudio: PolyDelay, Spread

Studio Six Plus One: Massarti, Wallenda

Squinky Labs: Comp, Comp II

VCV: Fade

Venom: Reformation (hard/soft clipping, wave folding, regionalized AM, general wave distortion) Wave Multiplier, WinComp (rectifier, clipper, etc) Shaped VCA, Quad VC Polarizer, VCA Mix 4 and VCA Mix 4 Stereo (clipping, ring modulation, AM) Bernoulli Switch and expander (audio rate switching with audio signals can create stereo effects)

Logic (interesting results with multiple audio rate inputs)

VCO Lab / VCO Unit - built in VCAs, can be used for ring modulation or amplitude modulation

Vult: Rescomb, Debriatus, Jorus, Nopskate, Flame, Decline, Wolv

ZZC: SC-VCA (soft clipping limiter)

Premium:

VCV Pro: Phaser, Flanger, Chorus

Unfiltered Audio: Instant Delay, Pitch Delay, Glitch Shifter, Fusion

5 Likes

Thank you for starting this excellent list!

What do you think of the idea of categorizing modules by their function, such as Filter, Waveshaper, Pan, Spreader, Compressor etc.? I could try to take a look, even though it’ll probably take some time until I can work through the many modules already mentioned.

If the list contains compressors, can we consider volume regulation to be an effect? Therefore, how would you like to handle VCAs, such as the VCA (VCV) or EG x VCA (Surge XT)?

One other question: For the Squinky Labs Comp module, it reads in the manual: “It is fully polyphonic, although all channels will have the same settings.” @VirtualModular: Does this actually match the criteria you set? @Squinky: Is there a benefit of this instead of merging the poly into mono first? I am aware that Comp II is a lot more flexible in this regard (and I use it in almost every patch), so I am only trying to find a bit of clarity on Comp.

you are correct re what comp and comp2 do. I think the above has shown that there is a lack of clarity about what any of these terms mean. If a few years ago I said “comp is fully polyphonic”, then I guess that’s what I considered “fully polyphonic”. As per my previous post - don’t most modules have the knobs affect all channels? and they would be considered “fully polyphonic”?

1 Like

Yep, there are a variety of definitions and it’s not up to me to say which one is correct. But in this case it’s my thread and my rules, and on that basis nope! :rofl: @Alphagem-O I consider a poly effect to be capable of different settings on each channel. This raises another issue, in that how do you change settings per channel? My usual use case is to apply poly modulation to a CV input, so that each channel gets a different value, but Squinky is correct to point out the controls on the GUI are affecting all channels globally. I guess this comes down to use case, what I usually do is mult a mono signal onto a poly cable so I can have more copies of an effect without patching multiple copies of the module. In that scenario, I’m not bothered about the precise settings on each channel because every channel has the same signal. But as another example, you could use poly outputs from the Mindmeld mixer and patch that into a compressor, and want to control the settings on each channel, because there’s a different sound on each channel. My head hurts now.

1 Like

So there are modules, like Comp II, where the knobs can and do control individual channels, not all of them. I’m pretty sure there are others… don’t the mind meld modules do that?

btw: of course you may make your own definition, and what you have chosen is quite reasonable.

1 Like

btw II: this stuff can get quite complicated. especially when you aren’t talking about polyphonic guitar stomp boxes. Polyphony is so complicated in this module that I used different lines in the block diagram to try and show what is and isn’t poly: SqHarmony/docs/harmonyII.md at main · squinkylabs/SqHarmony · GitHub

Good luck trying to figure that out without a manual!

2 Likes

Nearly all Venom modules are polyphonic - I strive to squeeze out all polyphonic possibilities for each module.

Some of my Venom modules are primarily for effects, and many can be used as effects.

Primary function is as a polyphonic effect:

  • Wave Folder (you already listed this one)
  • Reformation (hard/soft clipping, wave folding, regionalized AM, general wave distortion)
  • Wave Multiplier (hard to explain, but saw becomes super saw, sine/tri get odd wave folding with thick, shifting timbre)

Polyphonic modules with effects as secondary function

  • WinComp (rectifier, clipper, plus more if you get creative)
  • Shaped VCA, Quad VC Polarizer, VCA Mix 4 and VCA Mix 4 Stereo (hard/soft clipping, ring modulation, amplitude modulation)
  • Bernoulli Switch and expander (audio rate switching with audio inputs yields really interesting stereo effects, with lots of modulation possibilities)
  • Logic (interesting results with multiple audio rate inputs)
  • VCO Lab and VCO Unit have built in VCAs, so they can be used for ring modulation or amplitude modulation

If you are counting VCV Fade as an effect

  • Cross Fade 3D
  • Pan 3D

Venom poly inputs/outputs can be identified by brass centers (as opposed to steel centers for mono).

The output poly count is generally the maximum channel count found across all poly inputs. Mono inputs are replicated to match the output channel count.

Pretty much all inputs can be driven at audio rates.

Many effects can lead to aliasing. Venom generally provides over-sampling options to mitigate aliasing, when needed.

5 Likes

It seems as if we opened Pandora’s box. The hope however is that users and developers alike will benefit from this discussion and can be more savvy about using and creating polyphonic effect modules. So, I am not afraid (…yet) :joy:.

I started building a test patch to better analyze polyphonic audio signals and the effects of polyphonic modulation.

Patch for testing polyphonic effect modules_20250608.vcv (4.5 KB)

ADDR-SEQ (Bogaudio) is driven by a polyphonic clock signal created with a clock divider (Count Modula). FM-OP (Bogaudio) is fed with up to 8 voices of the resulting Pitch signal and driven by a polyphonic gate from the clock divider.

The audio signal is sent to the respective polyphonic effect module, the parameters of which are controlled polyphonically using PLC (docB) modules as a console.

Solo and Mute functions of MixMaster (MindMeld) are used to isolate voices.


The first thing I found interesting was that with F-35 (XFX), only the Freq parameter undergoes polyphonic modulation, all others (Drive, Res and Mix) only draw from Channel 1, ignoring the other channels, so their modulation is not exactly polyphonic.

My other finding was that this patch can give a good sense of CPU-consumption (F3) of the effect modules under different conditions of polyphony, which actually can be substantial (15% in the example shown).

3 Likes

I’m not adding anything new to this discussion (I’d be hard-pressed to!), but I want to thank all the contributors for this investment, which will benefit everyone.

2 Likes

Yep, I think this has generated more questions than answers!

@DaveVenom thanks, I’ve updated the list. I intended this thread to be mainly for dedicated audio processing modules, but it’s a valid point that CV and audio signals are largely interchangable. A good example is running guitar through a clock divider, that makes an absolutely filthy, noisy octave effect. You can also use VCOs as a guitar effect by patching the audio signal from your interface into the sync input, use comparators to create distortion, etc.

@Alphagem-O yep, you are correct that some modules only allow polyphonic modulation of certain parameters, which can be confusing. Also, polyphony does use a lot more CPU, I would expect that because I’m assuming the code runs multiple times for each channel.

1 Like

Mostly correct. SIMD operations allow a single instruction to operate on multiple sets of values simultaneously. With the VCV API the SIMD operates on 4 sets. So a well designed poly module running 4 channels will use roughly the same as 1 mono channel. Increasing to 8 channels only doubles the CPU usage vs 1!

There is some overhead such that running a SIMD poly module with one module will use a bit more CPU than a poly module that doesn’t use SIMD. But once you start adding channels, the SIMD quickly becomes much more CPU efficient.

3 Likes

It really depends on the module, as @DaveVenom pointed out.

For example, I’m amazed by HetrickCV’s Waveshaper, which takes 0.3% in my test, i.e. a fraction (1/2 to 1/15th) of other waveshapers or distortion modules I’ve used.

Some of the differences can be due to the presence or absence of anti-aliasing. Effects are prone to producing aliasing, though it often goes un-noticed by many. For effects, anti-aliasing likely requires over sampling, which can be comparatively expensive.

On my machine as well, the Hetrick shaper uses 0.3% for 8 channels of polyphony. My Venom Shaped VCA (stereo) has options to do the same type of wave shaping, though not to the same extreme level. My Shaped VCA uses 0.4% for 8 channels. That 0.1% difference is not surprising given the stereo in/out and additional features. Those numbers are without any anti-aliasing, which typically is not a problem. But when doing saturation, aliasing becomes wickedly problematic once you reach 2 kHz or so. My VCA has a x4 oversampling option that cleans up the sound, but the CPU usage jumps to 2% - that is a big change! It is 2% for 5-8 channels, and 1.2% for 1-4 channels. The Hetrick module does not have any option for anti-aliasing.

4 Likes

Thank you for taking the time to test and for your explanations! It’s plausible that better sound also costs more. With my 10-year-old machine, CPU can add up quickly, so I always need to keep an eye on consumption and find a good balance.

With the Venom Wave Folder, I get around 2.4% with 6th order oversampling (context menu) and 3.2% with 10th order.

With Venom Shaped VCA, I see 0.4%, increasing to 1.8% with 4x oversample and jumping to 5.4% with 16x (which in this case is probably an overkill).

On the high end, I see around 4.0% with Vult’s Wolv, and repelzen’s re-fold comes to around 5.2% at 6 folding stages, using the standard folding algorithm.