TidalCycles euclidInv and euclidFull produce the rhythmic complement or dual-voice Euclidean pattern
euclidInv k n p produces the inverse of euclid k n p: events fire on every step NOT occupied by the Euclidean pattern. Combined with stack, this creates perfect complementary polyrhythms where two voices together fill every beat exactly once. euclidFull k n p1 p2 is a convenience combining both: euclidFull 5 8 (s "bd") (s "hh27") plays the bass drum on Euclidean 5/8 positions and the hi-hat on the remaining 3 beats. This is a powerful compositional tool: any Euclidean rhythm generates its own complementary counter-rhythm, and the two together can cover a grid with perfect inter-leaving of two different sounds.
Examples
-- complement polyrhythm:
d1 $ stack [euclid 5 8 $ s "bd",
euclidInv 5 8 $ s "hh27"]
-- equivalent convenience function:
euclidFull 5 8 (s "bd") (s "hh27")
Assessment
Given euclid 3 8 producing x..x..x., what pattern does euclidInv 3 8 produce? Verify they are complementary (no overlap). Design a three-voice texture using euclid, euclidInv, and a third pattern on the remaining steps.