Looking for Random Router module or technique

(I’m trying to route 8 individual pitch voltages to 8 individual v/oct inputs. I would like for which note goes to which voice to be randomly reassigned on a trigger, with each pitch represented once, and each voice getting one pitch.)

I’ve seen a lot of 1→many or many→1 routing switches with the →1 or 1→ chosen randomly, which feels like one half of a solution.

For the other half, looking for a 1-to-1 router, this 8→8 rotating “carousel” is close, but I’m looking for something that isn’t sequential—where the order of inputs can be mixed up, ideally randomly.

Does anyone have any tips, or know of a module or a technique for combining some simpler modules to accomplish a triggerable many→many, 1-to-1-but-random routing?


Hetrick Rotator using random CV for the Rotate?


That sounds like a great idea for a new module to be developed!

The computerscare Roly Pouter can reroute channels from a polyphonic input, randomly scrambling the order of all the channels in the output.

Patch a poly cable with your CV values to the input and set the channel count in the upper left corner to match the number of channels you have. Send the poly out to your destination. Also enable the context menu “Randomize one-to-one (Don’t re-use input channels on randomize)” option.

Every time you activate the Randomize option in the context menu (or press the hot-key), it will scramble the channel order.

Now you just need a method to be able to trigger the randomize by CV. I’m thinking there must be something out there to do that.

1 Like

Given that Carousel is close to what you want, I’m wondering whether it’s close enough to pseudo-randomize by simply clocking up and down the Carousel by a trigger faster than the one you want to use to play the notes. A Bernoulli gate on the faster gate controls whether it goes up or down. This brings the added benefit of being able to control whether the melody mostly goes up or down.

1 Like

Another vote for Hetrick Rotator tho Carousel looks cool, haven’t used that yet.

GlassPane from Path Set appears to provide this functionality too.

I think I have found an elegant solution that exactly meets your needs. I use Roly Pouter as I described before, and add randomization via CV by adding Stoermelder Strip (and Strip-Block) that has the capability to randomize the module to the right. The Strip-Block prevents randomization from propagating further to the right. It is critical that the Strip be configured to ignore the Channel Count during randomization.

Obviously you can add Merge and Split if you want to work with 8 monophonic signals instead of a single poly cable.

Stoermelder is not yet in the library for VCV 2.0, but a pre-release version is available at Release Development build · stoermelder/vcvrack-packone · GitHub


Strip-Block is unnecessary if you can bear the horror of leaving a gap between modules, it only affects modules that are directly touching. The lights at the top indicate which direction(s) it affects.

Absolutely. I just happen to be one of those that don’t like gaps.

1 Like

Fair call.

Thank you for bringing rotator to my attention! I am already a huge fan of gate combiner but somehow overlooked rotator until now. This will simplify some of my generative rhythm setups.

1 Like

These are getting me even closer, thanks! But I’d still like something that can “mix up” the order—with any carousel, port 4 is still “next” to 5 etc., however they rotate.

I love new generative techniques but I skipped this Omri Cohen video cuz it looked like too much to wrap my head around—a good excuse to revisist :smiley:

As much as I like people pointing at my modules, I don’t think Glass Pane does what the original post asked for, unless I’m missing something?


For anyone like me who has never gotten a plugin anywhere except the VCV Rack library, simply download Stoermelder-P1-2.0.c37ae0f-mac-20220915.vcvplugin (Mac in my case) from this github and drag it to your VCV Rack plugins folder (where there should be folders for all the other module “brands”)

This will work for me! Here’s a simplified version of my setup. Thanks for the video, since some right-click menu nav was necessary.


I just realized there is a more elegant, though more tedious, solution allowing for no gaps without using Strip Block.

Change the Inc/Exc mode to Include, and then explicitly include only the Roly Pouter individual channel knobs.

1 Like

i know a multi-module solution has already been found, but today i started prototyping a module based on this idea to be potentially added to the NullPath plugin i’ve been developing with @Patheros.


+1 for thecage

you can route 1 to 12 or 12 to 12 or 12 to 1 and use random to select the stage or input a random voltage to select it