(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?
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.
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.
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.
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.
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.
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.
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”)
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.