home/ atoms/ tidal-dollar-sign

In Tidal, $ is a low-priority function application operator that avoids wrapping the final argument in parentheses

The $ operator in Haskell (and TidalCycles) applies the function on its left to the expression on its right. Because $ has the lowest possible precedence, everything on its right is evaluated first. This means every 3 (fast 2) $ sound "bd" is equivalent to every 3 (fast 2) (sound "bd") — it passes the entire sound pattern as the final argument to every. It only works for the final argument; attempting every 3 $ fast 2 $ sound "bd" fails because it tries to pass fast 2 $ sound "bd" as every’s second argument. When Tidal errors, previously running patterns continue — useful for live coding.

Examples

d1 $ sound "bd sd"$ passes the sound pattern to d1. d1 $ fast 2 $ sound "bd sd" — nested $ chains two applications. d1 $ every 3 (fast 2) $ sound "bd" — correct use with non-final arg in parens.

Assessment

Explain why d1 $ every 3 $ fast 2 $ sound "bd" fails. Rewrite it correctly. What does Tidal do when an error occurs during live performance?

“'$' has really low priority”
corpus · tidalcycles-course-1-structured-4-week-course · chunk 9