Staggered rhythm questions

Hey folks!

I’ve been enjoying the HetrickCV phasor collection, and some other phasor clock tools from ZZC, docB etc. Phasor clocking has a lot of potential for a particular project I have, where staggered and uneven rhythms are kinda critical. I still haven’t managed to find a reliable setup for one of the rhythms I want though, so I’m asking for some input.

The rhythm in question is in 3/4 time, with emphasis on the 1 and 3, and accent on 2. Then the trick is that the 2 happens a bit early! This gif should hopefully make clear what I want to do:

Re-timing audio in reaper

In that gif, I’ve a simple drum loop in reaper, cut into quarter-note length parts. Opt+dragging the boundary between beats 1 and 2 speeds up the first beat and slows down the second by the same amount.

I wanna do that with phasors, but there are two caveats. First of all, perfectly linear speedup and slowdown isn’t very groovy, I’d like to give each section of the staggered beat a little curve. And in the end, I want to be able to CV control how much of this staggered groove is applied to the phasor. So I can use a sequencer to give some measures more of the asymmetrical groove than others, and also put a perfectly symmetrical 3/4 measure or two at the end of each section.

So the goal is: A reliable 0-10V phasor signal where I can speed up the rise time from 0 to 3.33…V, while keeping the combined rise time to 6.66…V (and from there to 10V) stays constant. …and ideally apply a slight log or exp curvature to each 3rd of the voltage range (which must absolutely stay bounded in said 1/3 voltage range). …and then voltage-control the total amount of deviation from the default linear ramp.

Things I’ve tried so far: Shapemaster as main phasor clock. This works great up until the last requirement. It’s easy to start with a ramp, divide into three, shift the 3rd-of-the-way point back in time, then adjust curves by ear. But those individual XY points and curves are not voltage-adressable. Still, this is the grooviest candidate so far.

HetrickCV phasor shaper tools These manipulate the phasor curvature all sorts of way, including on a subdivision level. But I haven’t found something that works yet. The closest I’ve got is to generate a 2nd phasor at 2/3 speed, hard-synced to the original, curve that one, and then use a synced square wave at 6.66… duty to switch from that back to the original unmodified phasor for the 3rd beat. This would be CV-controllabler. But using only one curve across beat 1 and 2. And I’m getting false triggers either on beat 3 or 1 at the switch between the phasor variants.

DocB PHSR2 This has CV adressable points on an XY pad. But no curves. Also, no units, no type-ins… It’s difficult to get predictable results. Not suitable for this purpose.

So yeah, any other ideas welcome!

Stochastic Telegraph BASICally maybe?

Hmmm, interesting. I bet it is capable of the result. Will explore to see if the process is workable. Thank you!

Ooooh @DaveVenom’s Reformation is so very almost right. Except I wanna control Y as a function of X not the other way round… or wait, did i get that reversed? Anyway, also wanna divide the range into thirds not quarters. But very cool module anyway! I expect this will come in handy for other phasor trickery. :slight_smile:

The thing I’m missing right now is this: Desmos | Graphing Calculator

Any module that let’s me put in a 0-10v signal and remap it by this function, and CV control the Z param. There are some formula evaluators, but I don’t think these equations will work there and even if it did I expect it’d be unnecessarily CPU-heavy to calculate all those square roots. Any thoughts welcome. :slight_smile:

docB Formula One is amazingly fast, and I suspect it can handle your formulas just fine.

I think this is what you are looking for, except it does not have any log or exp curve applied. I think it can be further simplified for a bit less CPU, but this is pretty good as it is.

0-10V Phasor goes to X input 0-10V Modulation goes to Z input Modified phasor result at Out output

Staggered Phasor.vcv (1.4 KB)

1 Like

Yup. :slight_smile: I came across that docB one earlier today, and shot some ideas with one of the folks in the Surge Discord. It seems great indeed, and Hetrick’s stellar phasor tools are providing the curves in the above gif.

Here’s the code I’m using now, seems to work well: var i:=x; var v:=x*z; var m:=(((-0.3333*(x-(1/(3*z))-0.6666))+((1/(3*z))*0.3333)-0.4444))/((1/(3*z))-0.6666); if (v<0.3333) {var out:=v;} else if (i<=0.6666) {var out :=m;} else var out:=i;

Thanks for the interest!