Is there a way to have two patterns playing at the same time (so on top of each other) but at different cps? The end goal being the phasing of the two patterns. So is there a way to
setcps for only certain patterns? I saw this in the documentation:
Patterns don't (yet) have independent tempos though, if you change it on one pattern, it changes on all of them.
I assume this still holds true?
I'm sure there are many more ways at phasing besides tempo that I'm not thinking about if so... Maybe
rot is one? Or
slow 1.01? But both of those would reset at the beginning of every cycle I believe. Hmm.
PS: Still curious about the
setcps question, but this approach seems to lead to some interesting results:
d1 $ stack [
s "drum*8" # nudge (range 0 2.5 $ slow 20 tri) # pan 0,
s "sd*8" # nudge (range 0.1 2.5 $ slow 20 tri) # pan 0.5,
s "hh*8" # nudge (range 0.2 2.5 $ slow 20 tri) # pan 1
Unfortunately no. Also, the
cps pattern is a global pattern.
Something like this should work:
d1 $ slow 1.01 $ s "bd*8"
d2 $ s "cp*8"
But if you want to modulate the tempos of both, then you either have to pattern
slow or use a
nudge pattern, but with both you'll run in to some cycle boundary jaggedness:
d1 $ slow "<1 1.5 1.25 1.75>" $ s "bd*16"
d2 $ slow "<1.333 0.7 2.33>" $ s "cp*16"
Huh, so it's as simple as that!?
I was under the impression that
slow would slow down the contents within the cycle but that the duration of the cycle itself would stay the same, and therefore the cycle would reset itself. That doesn't seem to be what's happening though. In this case is
slow the same as changing the
cps for that one sound/pattern?
slow will not reset every cycle (nor will
Wow, well awesome. There's my answer thank you!
If I wanted patterns to phase out of time using
slow, but then slam back in sync at some point then I assume that I could use either
resetCycles or maybe
trigger 1? Both of those cause a hiccup when they're evaluated though as they're apparently not being quantized to tempo. I assumed that this would work but it also hiccups:
d1 $ trigger 1 $ slow 1.01 $ s "bd*8"
d2 $ trigger 1 $ s "hh*8"
It seems that what I want is the functionality of a
trigger 1 and a
Talking out loud here so hopefully this makes sense lol.
EDIT: Alex's new video answered my question!
qtrigger will bring them back into phase quantized to the start of the next cycle:
d1 $ qtrigger 1 $ slow 1.01 $ s "bd*8"
d2 $ qtrigger 1 $ s "hh*8" # pan 0.7