In a Tidal # combination, the left-hand pattern determines the rhythmic structure
When two patterns are combined with # (shorthand for |>, ‘structure from left, values from right’), the left-hand pattern’s event onsets determine when events occur — the rhythmic skeleton — while the right-hand pattern only supplies values at those times. So the operand order chooses which dimension drives the rhythm: with a sound pattern on the left, the sounds dictate timing; put an effect or parameter pattern on the left and its events dictate timing while sounds are mapped onto them. Concretely, if sound has 8 events and squiz has 4, sound # squiz plays 8 sounds, but squiz # sound plays only 4. Removing events from the left pattern drops events; adding them creates more. Related operators change the rule: |< / >| takes structure from the right, and |<| (or |>|) takes structure from both sides.
Examples
d1 $ pan "0 1 0.25" # sound "bd sn drum arpy" -- 3 events: structure from pan (left)
d1 $ sound "bd sn drum arpy" # pan "0 1 0.25 0.75" -- 4 events: structure from sound (left)
d1 $ n "0 1 2 3" # squiz "4 1 0 3" -- 4 events, squiz values fill positions
Assessment
Given d1 $ n "0 1 2" # s "drum arpy", how many sounds play per cycle? Now swap the sides — how many play, and why, using the left-structure rule? Given d1 $ speed "1 2 3" # sound "bd sd" versus d1 $ sound "bd sd" # speed "1 2 3", state how many events play in each and which sounds are heard.