Derive the native stage-order step list from a strip's chain — the built-in stage nodes AND
the strip's racked insert points, in chain order, as their stage ids. This is exactly what
feeds mixerSetStripChainOrder: the control thread resolves the strip's chain to this
list, the native side publishes it torn-free and walks it.
trim and fader are skipped — they are the pipeline's fill and sum boundaries, not
filters. An insert contributes a step only when it HOSTS a live plugin at a point the walk
can cut at (NATIVE_INSERT_POINTS): an empty slot declares a place and costs nothing,
a plugin at Top-Of-Ch is threaded ahead of the node's strip input instead, and one at
Post-Fader has no in-lane realisation at all.
Derive the native stage-order step list from a strip's chain — the built-in stage nodes AND the strip's racked insert points, in chain order, as their stage ids. This is exactly what feeds
mixerSetStripChainOrder: the control thread resolves the strip'schainto this list, the native side publishes it torn-free and walks it.trimandfaderare skipped — they are the pipeline's fill and sum boundaries, not filters. Aninsertcontributes a step only when it HOSTS a live plugin at a point the walk can cut at (NATIVE_INSERT_POINTS): an empty slot declares a place and costs nothing, a plugin atTop-Of-Chis threaded ahead of the node's strip input instead, and one atPost-Faderhas no in-lane realisation at all.