`setCycle` seeking, aligned to the cycles

Suppose I'm playing a continuous pattern on d1 which is exactly one cycle long (e.g. a simple d1 $ n "1(3,8)" # s "bd"), and some finite track using seqP on d2. Now I want to "seek" within the track on d2 using setCycle, but without (audibly) interfering with d1.

One might think this works when keeping getnow modulo 1.0 invariant, so something like this is what I tried:

setCycle =<< (fmap (\time -> toTime (time - 10)) $ getnow)

(jumping exactly 10 cycles back in time, but not changing where we are within the cycle)

Still, I'm hearing that the seeking interferes with how d1 sounds. Is there a better way to do it? Is it even possible to stay aligned to cycle when manipulating the cycle counter?

Ultimately setCycle isn't really designed to be a precise tool—there's a bit of latency between when it gets triggered and when it takes effect in the clock. A better mechanism is probably to build something related to the reset function that would allow you to just "seek" d2.

In terms of interface, would you want to specify your seek action in terms of number of cycles to jump forward/backward, or would you want to specify your seek action in terms of the specific point in the pattern you want to jump to?