For time-based arts, the most useful definition of 'declarative' is closeness of mapping between notation and target domain
In general software engineering, declarative programming separates the problem description (what) from the algorithm (how), treating time as an optimisation concern. McLean argues this separation breaks down for time-based arts: the algorithm’s temporal unfolding is the artwork. A more useful framing of ‘declarative’ for artist-programmers is closeness of mapping — does the notation operate at the same level of abstraction as the target domain? A pattern DSL mapping directly to rhythmic structure is declarative in this sense even though it specifies temporal behaviour explicitly. This reframing justifies DSL design choices that would look imperative by classical standards.
Examples
SQL is declarative in the traditional sense — the planner decides how. Tidal is declarative in McLean’s sense — its pattern notation maps directly to musical rhythmic structure, hiding scheduling while making structural intent transparent.
Assessment
A student argues that SuperCollider’s Pbind is more imperative than Tidal because it requires specifying durations explicitly. Evaluate this claim using McLean’s redefinition of declarative as closeness of mapping rather than separation from time.