TidalCycles necklace generates boolean rhythmic patterns from a list of inter-onset intervals rather than onset/total-steps parameters
necklace total [ioi1,ioi2,...] creates a boolean pattern of total steps where true values appear at positions determined by cycling through the inter-onset intervals (IOIs). necklace 12 [4,2] places onsets alternating every 4 and every 2 steps in a 12-step cycle, producing t f f f t f t f f f t f. This is an alternative to Euclidean rhythm specification: instead of E(k,n) (onsets, total), you specify the gaps between onsets. IOI notation directly encodes asymmetric rhythm patterns like those in West African, Balkan, and other non-Western traditions. Combined with struct and inv, it enables complementary polyrhythms from a single necklace specification.
Examples
-- necklace 12 [4,2] = "t f f f t f t f f f t f"
d1 $ stack [
struct (necklace 16 [3,5,4,2,1]) $ s "sd",
struct (inv (necklace 16 [3,5,4,2,1])) $ s "bd"]
Assessment
Calculate the onset positions for necklace 8 [3,2,3] and write the resulting boolean pattern. How does IOI specification differ from Euclidean rhythm specification? Design a complementary two-voice pattern using a single necklace and its inverse.