TidalCycles ply repeats each event in a pattern n times within its original time slot
ply n p subdivides each event in pattern p into n equal repetitions, all fitting within the original event’s time slot. ply 3 $ s "bd ~ sn cp" is equivalent to s "[bd bd bd] ~ [sn sn sn] [cp cp cp]". The first argument may itself be a pattern, allowing different events to receive different repetition counts: ply "2 3" $ s "bd ~ sn cp" repeats the first active event twice and the next three times. plyWith n f p extends this by also applying a transformation f to each repeated copy — useful for speed ramps, pitch shifts per repeat, or multiplicative effects. Used conditionally with every, ply creates rhythmic fills on specific cycle boundaries.
Examples
d1 $ ply 3 $ s "bd ~ sn cp" -- each event tripled
d1 $ ply "2 3" $ s "bd ~ sn cp" -- alternating 2x and 3x
d1 $ every 3 (ply 4) $ s "bd ~ sn cp" -- fill every 3rd cycle
d1 $ plyWith "2 3" (# speed "1.2") $ s "bd ~ sn cp" -- with transform
Assessment
Explain the difference between ply 4 $ s "bd sn" and s "[bd bd bd bd] [sn sn sn sn]". Write a plyWith expression that doubles the pitch of each repeated event.