Tidal's ? and degrade functions randomly remove pattern events to introduce controlled probabilistic variation
The ? suffix gives an event a 50% chance of playing each cycle; [bd sn cp hh]? gives the entire group a 50% chance. degradeBy 0.25 removes each event with 25% probability. sometimesBy p f applies a transformation function f with probability p to each event: sometimesBy 0.75 (# crush 4) bitcrushes 75% of events. Aliases: sometimes = 0.5, often = 0.75, rarely = 0.25, almostNever = 0.1, almostAlways = 0.9. Tidal’s randomness is deterministic — the same time position always yields the same ‘random’ outcome, so patterns are reproducible. Slowing or shifting time shifts which ‘random’ values appear.
Examples
d1 $ sound "bd? sd? sd? sd?" // each has 50% chance
d1 $ degradeBy 0.25 $ sound "bd*16"
d1 $ sometimes (# crush 4) $ sound "bd arpy sn ~"
d1 $ rarely (# crush 4) $ sound "bd*8"
Assessment
Explain why Tidal’s rand is described as ‘deterministic.’ What does this mean for live performance? How would you get two apparently independent random streams?