An instance's span is in its own frames

A shape's :span stays in its parent's frames, but an instance's or a sound's
is now in its own: dropping a symbol at frame 97 gives it span 0 … length and
:at 97, so moving it along its parent is one write to :at. :time :in is gone
(it was the span's start written twice); node/placed-span maps an own-time
span out to the parent for playback, the mixer and the timeline rows, and
node/problems reports a stale :in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Olive Vaughn 2026-09-29 12:53:21 -04:00
parent 2d2eb0fc9f
commit 6b41c6db94
10 changed files with 103 additions and 42 deletions

View file

@ -79,6 +79,12 @@ this way.
over which the node exists at all. Distinct from a `[:vis]` channel, which
blinks an existing node on and off.
A shape's `:span` is in its parent's frames. An **instance's** (or a sound's)
`:span` is in its **own** frames — which part of what it places plays, from its
own 0 — and `:time :at` is where that first frame lands in the parent. Moving an
instance along its parent changes `:at` and nothing else; `node/placed-span` is
the one function that maps an own-time span out to the parent.
### Subjects and tracked features
Scene nodes describe drawings, not tracking identity. A scene may also carry a