Add instanced 8625 stage with independent audio controls
This commit is contained in:
parent
a611b86c0d
commit
ffb95543a3
15 changed files with 507 additions and 48 deletions
|
|
@ -495,6 +495,39 @@ reading head over the same channel. The resolver keys its caches by the instance
|
|||
path, not by node id — which is a detail of `Making it fast` below, and the one
|
||||
place symbol nesting is not free.
|
||||
|
||||
### Audio placements and controls
|
||||
|
||||
Sound is placed on a timeline as a separate `:audio` node. It uses the same
|
||||
`:span`, `:time`, and channel representation as a drawn node. A `:linked-to` id
|
||||
records which picture instance it was placed with; it does not force the two
|
||||
spans or source in-points to match.
|
||||
|
||||
```clojure
|
||||
{:id :voice-right :kind :audio :parent :root :z "a4"
|
||||
:linked-to :right
|
||||
:source {:footage "f8cace9e-..."}
|
||||
:span [48 260]
|
||||
:time {:mode :map :at 48 :in 0 :rate 1}
|
||||
:channels {[:audio :gain]
|
||||
{:animated? true :interp :linear
|
||||
:keys {48 0.0, 60 1.0, 245 1.0, 259 0.0} :over []}}}
|
||||
```
|
||||
|
||||
`[:audio :gain]`, `[:audio :pan]`, and `[:audio :rate]` are ordinary scalar
|
||||
channels. They may be framed, keyed, or dense; numeric keyed channels can ramp
|
||||
linearly. The time map sets the placement's base source rate, and
|
||||
`[:audio :rate]` multiplies it. Audio is mixed from the referenced immutable
|
||||
footage when the clip opens. The mix is derived output; the saved document holds
|
||||
the nodes and channel keys, not another audio file. One audio element plays that
|
||||
mix and remains the clock for both sound and picture.
|
||||
|
||||
This is also the boundary for a future control surface. A control has a stable
|
||||
target, such as a feature's `:verts` setting or an audio node's
|
||||
`[:audio :gain]` channel. The UI and a MIDI binding can address both through the
|
||||
same control interface. Their update costs differ: gain can be keyed over time;
|
||||
changing the number of lip vertices changes topology and must regenerate its
|
||||
dense geometry. A topology setting cannot be treated as a per-frame gain curve.
|
||||
|
||||
## Evaluating a frame
|
||||
|
||||
```clojure
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue