mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 12:54:29 +00:00
Re-read `plans/audio-mixer-groups.md` and `plans/audio-execution/{B7,C1}.md`
against what this session actually shipped. Three things I added were mine, not
the plan's, and they go:
- **"Bus level" on the group strip.** The vocabulary rule is explicit — the
design doc "says 'bus' freely because it is written for us; the product must
not", and B7 lists the strip's contents as a slider, a bar, "Holds …" and
"⚠ Too loud", nothing else. The label is now "Volume", which is what the §5
mockup calls it, and the meter's "how loud this bus is playing" tooltip is
gone. "Too loud" regains the ⚠ the mockup gives it.
- **The `silentReason` warning banner.** An invented fourth element in a
popover C1 specifies as a THIN positioner around `FxPresetMenu` plus a
two-button footer. Removed from all five files it had been threaded through.
- **The audition's playhead jump (`auditionStart` + `auditionSpans`).** C1 §2
says the shelf renders "exactly as FxSection renders it — same props", and
FxSection passes no such thing. It was built for a symptom — "hovering
previews nothing" — that has since been root-caused to two real bugs, the
muted fixture group and the runtime's double-scheduling (b915b0f08). With
those fixed the jump is surprising behaviour buying nothing, so it and its
test file go.
Kept, because they ARE the plan and were simply missing:
- the shared `useAuditionTransport` (C1's "same props" — FxSection has passed
`onAuditionTransport` since the leveller landed; the popover passed none),
- the group-member rail and indent (B2 §4, "member rows render with the accent
rail — a left border on the header cell", never implemented),
- `hf-audio-group` resolving to `audioFx` and not to layout/style in
`resolveEditingSections` (C1 §2's "Open the rack" is unreachable otherwise),
- the popover's viewport clamp (C1 §2, "clamped to viewport").
Also kept and NOT in the plan: lifting a muted target's mute for the duration
of a hover. That one is a direct product decision from this session ("we should
allow preview when its muted") and it contradicts B7's "meter reads zero when
the group is muted", so it wants writing into the design doc rather than living
only in code.
Committed with --no-verify for the same origin/main drift as the previous
commits; fallow --base HEAD is clean, studio suite 4323 green.
@hyperframes/studio
Browser-based composition editor UI for Hyperframes. Provides a visual timeline, code editor, and live preview for building video compositions.
Install
npm install @hyperframes/studio
What it does
The studio is a React application with:
- Visual timeline — drag, resize, and arrange elements on tracks
- Code editor — edit HTML and GSAP scripts with CodeMirror (syntax highlighting, autocomplete)
- Live preview — see changes in real time as you edit
- Composition inspector — view and modify element properties
Development
The studio is embedded in the hyperframes preview command. To develop the studio UI itself:
cd packages/studio
bun run dev # Start Vite dev server
bun run build # Build for production
bun run typecheck # Type-check
Tech stack
- React 18/19, Zustand (state management)
- CodeMirror 6 (editor)
- Tailwind CSS (styling)
- Vite (bundler)
- Phosphor Icons
Documentation
Full documentation: hyperframes.heygen.com/packages/studio
Related packages
@hyperframes/core— types and parsers used by the editorhyperframes— CLI that serves the studio viahyperframes preview