Goal
Make compiled patterns first-class values (transform, combine, embed) and write down the reactive contract callers can rely on. Together these enable:
Jindong(speed) {
Clip(heartbeat.timeStretch(1f / speed))
}
A state change reshapes the timeline; there is no imperative replay call anywhere.
Work items, in dependency order
Spun out along the way: #93 (execute/executeAsync overlap), #89 (keyless reactive patterns, post-R1).
Gate
Everything builds on the serial-timeline pipeline in #85, which merges first: reversed() and then can produce overlapping events, and #85 is what serializes overlaps at playback.
Goal
Make compiled patterns first-class values (transform, combine, embed) and write down the reactive contract callers can rely on. Together these enable:
A state change reshapes the timeline; there is no imperative replay call anywhere.
Work items, in dependency order
Clipnode and coreclipaliasSpun out along the way: #93 (execute/executeAsync overlap), #89 (keyless reactive patterns, post-R1).
Gate
Everything builds on the serial-timeline pipeline in #85, which merges first:
reversed()andthencan produce overlapping events, and #85 is what serializes overlaps at playback.