Polyphonic arpeggiator logic

Hi Gang. Hoping greater minds than mine will prevail. I have a cv.ocd MIDI-to-CV/Gate box, it’s great. Among many things, it has a polyphonic chord mode. I have it setup so that as the first note in a chord is pressed on the MIDI keyboard a gate is set high and is routed to G1 on the ER, then as the second note is pressed a gate high to G2, third G3, fourth G4. Then as you lift each finger off from the keyboard the respective gate goes low.

I got this far in terms of patching an arpeggiator for those gates using a Counter and a bunch of Bump Scanners:

arpeg_v1.chain (44.8 KB)

To imitate the cv.ocd I included the gates “in1-4” in the chain which are supposed to mimic the gates from it. So, basically, as you toggle on in1 then in2, etc you will see that the clock trigger will start to cycle the out1-4 triggers from 1-1-1…, then 1-2-1-2… then 1-2-3-1-2-3… etc. And vice versa: as you toggle off in4, then in3, etc you will see it cycle back down accordingly. Cool, great.

I could stop there and be happy. But I would like to figure out this potential scenario: The gates from cv.ocd will always trigger in sequence from 1 to 4 as I hold down each note in a new chord. But sometimes I’ll, for example, take my third finger off before my fourth finger when I’m releasing. The way I built it it will cycle through just 3 outs correctly, but I would prefer to have it cycling 1-2-4-1-2-4…

Does that make sense?

I was thinking some combination of @Joe 's units Math and Voltage Bank might do it, but my brain starts to crumble as I start patching it up. Any ideas? O is there another approach using different units that would get the desired result?

How about just using a single saw LFO routed to all your voices and then set the thresholds of any gate destinations progressively higher so that they fire consecutively?

If you want more control over timing then you can replace the saw LFO with a counter but first make the patch with the LFO.

Edit: Oops. I missed the part where you are controlling the chord voicing externally. I think you will have a hard time doing this with the existing units; definitely a job for the middle layer.


Thanks for the heads up. I’ll have to get my scripting chops up to par one of these days!