Utilities for polyphonic channels

There aren’t many modules that provide for this. I am aware of three:

  • VCV Merge (context menu option)
  • Sapphire Moots (the purpose of the module)
  • Venom Bypass (Any output will have 0 channels if the corresponding input is unpatched)

There may be a few more.

I just realized it might be worthwhile adding the capability to my Venom Multi Split. Each output port already has a context menu to specify the number of channels from 1-16. I think I could add an option for 0 channels.

4 Likes

Hey everyone! Moots is definitely not polyphonic, nor would it make sense, because its sole purpose is to act as a “cable plugger/unplugger”. It acts exactly like you either have the cable connected or not, regardless of how many channels the cable carries.

More precisely, when one of the 5 controllers is enabled, the output cable has the same number of channels as the input cable, with the same voltages on each channel. When disabled, the output cable has zero channels. This is a very weird thing, but a quirk of VCV Rack is that it treats a zero-channel cable exactly the same as an unplugged cable.

The whole reason I created Moots is that there are cases where a 1-channel cable with a constant 0V signal is treated differently from no cable at all (or a 0-channel cable). The result is a way to automate connecting/disconnecting cables entirely.

Because there is only one answer about whether a cable should be connected or not, there is nothing sensible I can do with multiple channels on each gate/trigger input. Therefore, if the gate/trigger input is polyphonic, I sum the voltages to get a single voltage level that decides whether to connect or disconnect the cable.

Summing the voltages was based on early feedback here on the forum. The first version of Moots only used the first channel of the gate/trigger port and ignored all the others. The change was a welcome idea because it works the same for monophonic gate/trigger signals but enables more advanced usage with negligible overhead.

If you want to operate independently on the channels inside a polyphonic cable, chances are you want to either pass through an input signal or set it to zero, independently for each channel, but without changing how many channels the cable has. I think VCV VCA will do that for you. Send a polyphonic input cable and a polyphonic amplitude signal with the same number of channels, and you’re done!

I hope this explanation makes sense. It’s possible I’ve misunderstood the point, so please let me know if that’s the case!

2 Likes

I think my Sort module is a more direct implementation of this idea: A gate/logical polyphonic pattern on the “Select” input will selectively include or exclude entire channels from the “Data input” through to the output (not just muting them to 0v, but removing the channel itself).

These inputs:

Data Sort Select
x 2v 10v
y 3v 0v
z 1v 10v

Would output:

Output
z
x

However, it doesn’t have Moots’ “empty cable” behavior; if you pass through all zeroes to the Select input, it outputs a single channel of 0v- I looked at trying to mimic Moots behavior for that case, but it just didn’t quite fit in with the types of places where I wanted to use Sort. You could combine it with Moots though.

1 Like

unfortunately it does not work with VCV VCA. the number of polyphonic output channels are always like the input channels and only 0V. so if i change one channel inside the poly input, the rest channels are zero and do not contain the notes from my sequence.

For the “Polyphonic meters/visualizers” category, Grande Clip can also be used to display and monitor two polyphonic logic signals. Leave the clip voltage at its default 5V value, and ignore the outputs.

1 Like

It’s late here and I need a bit more time to read through and answer the many good points that have emerged.

But I was fascinated by Quad LFO (Surge XT) to allow for polyphonic modulation (see pic). So, by your criterion, this module should be added to the list? Despite this going beyond the original objective, I would concur that it would be really good to highlight diamonds like these.

Perhaps we should make up another (large font, bold) category (e.g. called Inputs for Polyphonic Modulation) for these modules.

1 Like

So, here we come back full circle to attenuverters, originally brought in by @Loops, with inputs for polyphonic modulation in Offset (Bogaudio). Include?

When I were a lad, we called those “snakes”. They probably still do. I think there was one model with the brand name of “Anaconda”, which seemed appropriate.

@octex912 - Their main purpose was to simplify handling of many signals over a long distance, like from the stage to a mixer at the back of an auditorium, instead of running individual cables.

In the VCV application of polyphony the intention (according to my understanding) is more that you can process many related signals simultaneously (and, typically, identically) by a single poly-capable module, without mixing them down to a single mono channel or running them through several identical modules.

1 Like

hello, i will test it in combinations. sounds good to me.:+1:

Thank you for thinking more about this! Based on your ideas, going forward I would suggest the following five defined criteria for inclusion, which would then also make up five main classes with respective sub-classes, where applicable.

I am just brainstorming, how does this taxonomy sound to everyone?

1.) ROUTING: Routing of individual polyphony channels (includes merge, split, rotate, clone etc. sub-categories)

2.) MAIN: Control over main input and/or output signals in individual polyphony channels (includes sub-categories for scale, offset, unison etc.)

3.) MODULATION: Processing of modulation input signals in individual polyphony channels (includes e.g. Quad LFO, Offset etc. modules; possibly sub-categories by module function)

4.) FIXED: Control over fixed voltage output signals in individual polyphony channels, i.e. modules that have no input signal ports (sub-categories could include buttons with only two states (on/off, 0/10V) and knobs with multiple or continuous CV-values)

5.) METER: Metering or visualization of individual polyphony channels (sub-categories could include graphical and text/number-based)


The word ‘utility’ can indeed mean a lot of things :-), and its origin here only stems from the tag in the library (which is not applied very systematically), so I would not be too concerned if we payed less attention to this term.

Well, at least Moots is listed as ‘Polyphonic’ in the library and does pass polyphonic signals. But I am also positive that you know best what is possible and what not, so no worries.

For me, I would like to clarify whether it is wrong to think of a polyphonic cable as a thick cable with up to 16 thin cables (channels) inside. In this way of thinking, couldn’t it be done in principle (not necessarily in Moots) to ‘unplug’ individual thin cables while keeping the thick cable plugged/intact?

No, the absence of a thin cable is different than a thin cable carrying 0V.

Think about a normalized connection, or default routing, where if you patch an input, it breaks the normal or default routing.

When you patch a cable that has 0 channels, it behaves as if the cable is not even there, and the normal connection remains in effect.

With VCV poly cables, it is not possible to do the same thing for individual channels within the poly cable.

I suppose you could remove a thin cable, but that would destroy the integrity of the channel number assignment of the remaining thin cables. For example, suppose you have a poly cable with 4 channels, each with a different value:

1234
ABCD

If you try to remove channel 3 like so

12 4
AB D

that collapses into a poly cable with only 3 channels

123
ABD

Such a module certainly could be created, but it is not what @karlderletzte is looking for.

1 Like

+1 for inclusion, since with this module, every channel in the poly cable can be modulated independently (for both offset & scale)

1 Like

This example explained it clearly to me, thank you, Dave! Thin cables fill the void of empty slots (no cables, not ‘zero’ cables) and thereby disturb the order (channel assignment).

PolySort (Chinenual)

Can sort a polyphonic input signal to a custom sort order provided from another polyphonic input signal that is plugged in just above its own port.

In the example (see pic), the sort order is provided by the left ‘Fixed Voltage Source’ module. It is plugged into the top input port. In the top output port, these values are sorted in ascending order.

The right ‘Fixed Voltage Source’ module supplies another list of numbers to the second input port from the top. Note that the values in channel 2, 3, and 4 are out of order.

If the Link button is turned off, sorting is performed in ascending order. If the Link button is turned on, the order of values in the left ‘Fixed Voltage Source’ module becomes the sorting template, so. e.g. 0.25 moves from channel 2 to channel 15, 0.75 from channel 10 to channel 12, 1 from channel 13 to channel 10.

UPC_PolySort (Chinenual)_20241010.vcvs (8.2 KB)

1 Like

Clip (Grande)

Polyphonic dual clipper with adjustable clipping threshold. Clip’s display shows active (below threshold) channels in blue and currently clipping (above threshold) channels in red.

Use as a clip/logic monitor by just attaching the inputs, not passing through the module.

UPC_Clip (Grande)_20241010.vcvs (12.7 KB)

Some3 (Coffee)

Mutes (value becomes zero) an arbitrary number of channels from a polyphonic input upon a trigger input.

A trigger input is required to make changes effective.

The number of muted channels is guided by the Probability knob: When setting probability to 1, no channels are muted. When setting probability to 0, all channels are muted.

Channel range of activity is set by the Start and End knobs (or CV inputs). To select only one channel (i.e. solo; e.g. 7), set End to n (e.g. 7) and Start to n-1 (e.g. 6).

Range can be shifted up (toward lower channel numbers) or down (toward higher channel numbers) with trigger inputs. No rollover.

UPC_Some3 (Coffee)_20241010.vcvs (5.9 KB)

Ooh I didn’t know about Submarine LA-108. That’s a handy poly scope. I might not have made Signals if I knew this one existed :upside_down_face: However, Signals has a unique feature still, in that the trigger resets each scope channel individually.

I really like this thread, it’s very helpful to have the different poly things sorted into useful categories like this. :+1:

2 Likes

Voltage Range (Sparkette’s Stuff)

Generates a polyphonic output signal of a smooth range of (equidistant) values between and including two specified voltages.

Set number of channels with Channels knob.

Delta Voltage output displays distance of values.

UPC_Voltage Range (Sparkettes Stuff)_20241010.vcvs (1.9 KB)

UPC_Voltage Range (Sparkettes Stuff)_20241010

I think what is nice is that Signals is straightforward and easy to use. No bells and whistles, which in some cases can be a real plus.