ReadonlynameReadonlypathPrivatebufferPrivate ReadonlyvoicesPrivate ReadonlymaskPrivategatePrivateglobalEngine-wide mute (the rail).
PrivatenodeThis node's own Layers-panel eye.
Private ReadonlymutingLayers-panel eyes on ancestor groups.
PrivatedisposedLive per-node linear gain (the Layers-panel slider); starts at the authored value.
PrivatefoaThe FOA rotate-and-decode graph of an ambisonic node (one voice).
PrivatelastLast derived per-row audibility, kept so a deferred start can replay it.
PrivatelastReadonlydescReadonlyattrsPrivate ReadonlydepsPrivatependingA waypoint trigger that arrived before the clip decoded (no voices yet).
PrivatemutedNumber of currently playing voices.
True when the current slice makes this node audible (before or after its buffer arrived). The engine decodes audible nodes first, so the opening story's bed and narration are not queued behind ten silent clips.
PrivatecontextTrue for the two triggers the waypoint driver drives (not the slab).
Hand the decoded clip over. Voices are created here (lazily, once) so a node whose clip never arrives costs nothing but a placeholder. Pending rising edges recorded before the buffer arrived are replayed.
PrivaterestorePrivatecreatePrivatecreateOne voice's three Audio: a FOA field, a positional source, or a plain clip.
PrivateconfigurePrivaterepositionPlace each spatial voice: at the attach_to node's centre when it resolves,
else at its row's displayed x/y/z.
PrivateplaceTrue when an attach_to centre resolved and every voice now sits there.
PrivateplaceRe-place the voices (an attach_to target may have loaded or moved).
PrivaterowPer-row audibility for the last view state (null = live everywhere).
PrivateapplyCompare the current audibility against each voice's recorded state and act
on the edges. replayRising treats every audible voice as a rising edge
(used when the gate opens or the buffer arrives), so deferred starts fire.
Privateapplycontinuous / once: the slab's rising edge starts, its falling edge stops.
Privateapplyon_depart / on_arrive: the waypoint driver owns the start (a deferred
trigger replays here); the slab only ends an on_arrive clip once its
story is left (see the module docs).
Staleness is NOT decided here. Audibility is unknown until a view state arrives, and a waypoint may address one row of a spatial node explicitly while the slab reports that row silent, so both look identical to a clip whose story has been left. The engine expires deferred triggers instead, on the next waypoint event, where the tour having moved on is a fact rather than an inference.
Forget any deferred waypoint trigger, without touching what is playing.
The engine calls this on every new waypoint event of this node's trigger kind, so at most ONE deferred trigger — the most recent — is ever waiting. Navigating N stops while the autoplay gate is shut otherwise leaves N clips armed, and opening the gate starts all N together.
The waypoint driver's event for a waypoint this node belongs to. rows
marks the belonging rows (null = every voice). Returns true when the node
takes the event — its trigger is the matching on_* kind.
PrivatereportPrivatestartPrivatestopAutoplay gate: while closed nothing starts; opening replays pending edges.
Engine-wide mute: stops the voices with a fade; unmute replays the audible ones.
The node's own Layers-panel eye.
An ancestor group's Layers-panel eye.
PrivateapplyLive per-node gain: playing voices ramp to it (anti-click), later starts use it.
Manual start (embedder API): plays regardless of the slab.
Manual stop (embedder API), with the node's fade-out.
One
soundscene node's voices, edges and fades (see the module docs).