Skip to content

Held bindings: the scene may not be seeing this frame's value

A preset may declare a [hold] table (ADR-0180 rule 2): a binding listed there is still evaluated every frame, and the value the scene receives changes only on a named musical edge — beat, bar, or a period in seconds.

Every column on this page is a rendered measurement, so a hold is already inside the numbers. What is not inside them is the reading a person does over the same table: a binding that names bass is read as responding to bass, and a held one responds to bass once a bar. So the report names them, one line each, under the family they belong to:

held bindings: the scene sees the value the named edge last took, not this
frame's — so read the columns above as the response the hold allows, not as
the expression's own
HELD: my_rose n on bar
HELD: my_rose [layer] mix on 2.5 s

The block is absent when no preset in the family holds anything — no shipped preset declares a [hold] table, so the whole library is in that case and the lines above are from a hand-written fixture. --json carries the same pairs as reachability.holds.

This is containment for [hold], not a fix for the report’s blindness to beat_index-driven response — that is design-backlog 0192, and it is a larger hole.

Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.