Useful function of BogAudio Unison: Gate Proliferation

I run into this a lot: I use VCV Chords with a mono input for the root note and select “Polyphonic Output includes channels 1-N” in the context input.

But some devices can’t handle polyphonic pitch with a mono trigger/gate.

BogAudio Unison has a gate input and output, so even if you’re not trying to thicken the sound by adding voices, you can get as many channels of gate out as you need.

My go-to solution before now was to use a VCV Merge and duplicate the mono gate over multiple channels.

5 Likes

Count modula Manifold designed for this but in x4 way

You can use Computer Scare’s Roly Pouter to duplicate, don’t know if it helps with CPU or ease of use but it’s a handy tool for that.

From Voltage Standards - VCV Rack Manual

All other secondary inputs with M channels should follow these rules:

If monophonic ( M=1), its voltage should be copied to all engines.

If I’ve understood your enquiry Kent and understood the standard, it should probably be raised with the developer as a possible bug due to deviating from the standard.

1 Like

It is not always a bug. There are modules where a certain input defines polyphony and others not, which I think is ok - or is there a standard that says “The Input with the highest number of polyphonic channels defines the overall polyphonic channels of the module”? Let’s say an Envelope, where the number of channels is defined by the trigger-input. Now you want to modulate the length of the release stage polyphonically, but that input does not define the number of channels. So you need a common polyphonic trigger.

1 Like

I don’t really worry about CPU. But how would you use Roly Pouter to replicate gates? Put a mono gate into the IN port then click on all channels you want to pass gate to?

I ask because it isn’t documented.

The Count Modula Manifold does the same thing but as Artem says – it does it 4 times!

The BogAudio Unison is like 1/4 of a Count Modula Manifold, but it is tailored to CV/Gate pairs & has detune control to spread the ptich CV.

MANY WAYS TO THE TOP OF THE MOUNTAIN INNIT?

Yes, just input the gate to the input and change channel numbers to whatever you need.

Screenshot_20220128_211423

But yes, there are many ways to do it.

1 Like

As I read the spec, it is definitely OK to specify one input that controls the polyphony, and then all the other inputs replicate as needed to match. That seems to be how most poly modules work.

That is why I was excited about how the V2 VCV VCA works - it indeed implements “The Input with the highest number of polyphonic channels defines the overall polyphonic channels of the module”. I don’t think that feature is very common.

Now I finally understand how that module works. Thanks. I never took the time to load one up to experiment. It looks to be very useful indeed.

1 Like

The Bogaudio Polymult module seems more intuitive for replicating a single mono input into N poly channels than Unison.

I was shocked to discover it actually uses marginally more CPU than the Unison :thinking: To me it seems Unison is trying to do more than Polymult.

But Polymult does have a Channels input that determines the number of output channels, overriding the knob. The actual signal in the channels input is ignored , other than counting the number of channels.

Unison does not give you CV control of the output channel count. Maybe that is the source of the CPU usage difference.

1 Like

LOL I bet modulating the polyphony of BogAudio POLYMULT at audio rates would be AWESOME.

Yeah those modules seem to be slept on but they’re so good. There are a few others in the same vein, work the same way.

1 Like

The Channel input, she’s broken. @matt If I connect an input into the CHAN input of PolyMult, it stays at 1 voice. Try connecting the LFO to the channel input,

BogAudioPolyMult-Test.vcv (2.3 KB)

No, I misspoke a bit when I said “CV control”.

The channels input ignores any incoming voltage. It simply counts the number of channels present on the incoming cable. So it is more of a convenience thing for setting up a patch, not so much for dynamic control.

One use case would be if you have a polyphonic patch with N unique channels driving the polyphony of some module, and a monophonic CV that gets replicated for the same module.

If you patch the N unique channels into the channel count input of Polymult, then you can add or subtract unique channels, and not have to worry about setting the correct channel count for the Polymult.

Oh well that makes sense. So the Channels input is "OK if the input’s connected, use the same polyphony as that input. I’m reading the source code & it’s very simple actually.

LOL I bet I could hack it so it changes with CV, and it would be a VERY BAD THING to drive it with a 1khz audio signal.

LOL if you check out the source code for BogAudio this will make it modulate then number of voices of Polyphony. And it’s as crap as that sounds :grin:

index aa4045d..6154523 100644
 --- a/src/PolyMult.cpp
+++ b/src/PolyMult.cpp
@@ -3,10 +3,14 @@

 void PolyMult::processAll(const ProcessArgs& args) {
        int cn = clamp(params[CHANNELS_PARAM].getValue(), 1.0f, 16.0f);
+#if 0
         if (inputs[CHANNELS_INPUT].isConnected()) {
                cn = inputs[CHANNELS_INPUT].getChannels();
         }
-
+#else
+       float chanInput = inputs[CHANNELS_INPUT].getVoltageSum();
+       cn = clamp((chanInput * 1.6) + static_cast<double>(cn), 1.0f, 16.0f);
+#endif
        float out = inputs[IN_INPUT].getVoltageSum();
        outputs[OUT1_OUTPUT].setChannels(cn);
        outputs[OUT2_OUTPUT].setChannels(cn);

Yep it’s not always a bug.