In Tidal mini-notation, [] stacks subsequences into one cycle (polyrhythm) while {} aligns them step-for-step (polymetre)
Tidal’s mini-notation offers two ways to stack comma-separated subsequences. Square brackets [A, B] create polyrhythm: every subsequence is fitted into the same parent cycle length, so a 2-step and a 3-step layer complete together but at different event rates. Curly brackets {A, B} create polymetre: the left pattern sets the pulse (the step rate), and every other subsequence keeps its own step count at that same rate. Because their lengths differ, they phase against each other — their alignment shifts from cycle to cycle, and over several cycles you hear every combination of the layers’ steps. Polyrhythm = different rhythms sharing one timeframe; polymetre = a shared pulse with cycles of different lengths drifting apart. A related shorthand: the . separator splits a sequence into equal-length groups, equivalent to wrapping each group in [].
Examples
d1 $ n "[0 5 2 ~, 0 3 4*2 0 3]" # sound "cpu2" -- polyrhythm
d1 $ n "{0 5 2 ~, 0 3 4*2 0 3}" # sound "cpu2" -- polymetre
Assessment
Explain the difference between [] and {} stacking in Tidal. Given [a b, c d e], draw the events over one cycle; then draw {a b, c d e} over three cycles and describe how the two layers’ alignment shifts.