Summary
Continuous morph between two (or more) full recipes across a video's duration. The Absynth wavetable primitive applied at the recipe level. Lets long-form pieces drift through compositional space rather than holding one state. Highest-cost RFC in the arc.
RFC
RFC-018 — Recipe morphing
Scope
- New top-level `morph:` block — declares `sources: [...]` + `schedule:` weight curve
- Schedule weight is polymorphic — scalar / envelope / clock / macro
- Two sources at v1; schema generalises to N for v2
- Per-parameter morph rules:
- numeric — lerp
- enum — hard snap at midpoint (default); opt-in crossfade for sample-bank refs
- envelope — morph the expanded per-frame arrays (universal regardless of breakpoint topology)
- clock — morph expanded per-frame arrays
- macro value — morph per its type
- macro targets — union, weighted by source contribution
- color — channel-wise lerp
- Audio sample crossfade: both source audio engines run in parallel during transition zones, mixed by morph weight
- Outside transition zones (w == 0 or w == 1), only the active source renders — no parallel cost
- Payload v3 extension: both source payloads + morphed result arrays + schedule for editor introspection
- Editor: new Morph mode with side-by-side source preview, schedule editor (looks like envelope editor), per-param rule overrides
- TS ↔ Py cross-validation (~20 fixtures)
Dependencies
Requires RFC-014 (envelope morph operates on expanded arrays); benefits from RFC-017 (macros morph well via target-list union). Should ship after the rest of the arc is stable — highest cost, highest schema complexity.
Closes into
- ADR-042 — Recipe morphing: schedule + interpolation
- ADR-043 — Per-parameter morph rules + sample crossfade
Implementation task
`RFC-018 implementation: recipe morphing` in the task list.
Summary
Continuous morph between two (or more) full recipes across a video's duration. The Absynth wavetable primitive applied at the recipe level. Lets long-form pieces drift through compositional space rather than holding one state. Highest-cost RFC in the arc.
RFC
RFC-018 — Recipe morphing
Scope
Dependencies
Requires RFC-014 (envelope morph operates on expanded arrays); benefits from RFC-017 (macros morph well via target-list union). Should ship after the rest of the arc is stable — highest cost, highest schema complexity.
Closes into
Implementation task
`RFC-018 implementation: recipe morphing` in the task list.