Cycles within cycles?

Is there a way to have a hierarchy of cycles?

For instance:
In every m//nth cycle, I want d1 $ f_m (so f_1 in each cycle of supercycle 1, f_2 in each cycle of supercycle 2, etc.)

I don't think ``whenmod" is appropriate since
a) it has type
whenmod :: Int -> Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a
while what I'm looking for is
supercycle :: Int -> Int -> [Pattern a] -> Pattern a

b) I want it to change behavior every m//n cycles, instead of m % n (which will change every cycle).


I don't quite understand the question. What does "m//n" mean?

Is this a "cycle of cycles" in your sense?

 d1 $ slow 4 $ s "superpiano" + note ( scale "major" (squeezeJoin (fmap (\x -> run (pure x)) (run 8))))

outer cycle: run 8, inner cycles: run up to current value of outer cycle.