Give every node in chain a placement, leaving the ones that already carry a declared point
untouched — the total read of a chain authored before the placements existed, or by hand.
The backfill is deliberately in this order, most specific first:
the node already names a point the set declares — keep it, it is the authored fact;
the canonical chain has a node with the same id — take that placement, so eq, fader,
insA… land exactly where the desk puts them;
the node's KIND has a canonical home (a gate is post-trim, an EQ is pre-EQ, a fader is
pre-fader) — the same answer for a node that spells its id differently;
an insert labelled post sits behind the fader, the convention defaultChannelChain
already documents;
otherwise it inherits the point of the node it currently follows, so a hand-added FX
stays where it was put relative to its neighbour, and a leading unknown lands at the
first point.
Sort keys are handed out in array order within each point, so a chain that arrives already
in a sensible order keeps it. This is a READ of an unplaced chain, not a migration: nothing
writes it back except the normaliser that called it.
Give every node in
chaina placement, leaving the ones that already carry a declared point untouched — the total read of a chain authored before the placements existed, or by hand.The backfill is deliberately in this order, most specific first:
eq,fader,insA… land exactly where the desk puts them;postsits behind the fader, the conventiondefaultChannelChainalready documents;Sort keys are handed out in array order within each point, so a chain that arrives already in a sensible order keeps it. This is a READ of an unplaced chain, not a migration: nothing writes it back except the normaliser that called it.