mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-14 18:01:20 +08:00
efe643c37e
Wires the browser half of the pipeline. The sidecar returns processed PCM over one WebSocket, which a ring buffer feeds to an AudioWorklet so a track plays its wet signal in preview. The whole app shares exactly one sidecar connection, mounted once in NLEProvider and handed to consumers through context. The wire protocol cannot safely tell two independent connections apart, so a second connection is a correctness problem, not just overhead. Because the worklet now owns a VST track's audio, the element itself must stay muted. Every place that writes .muted or .volume across media elements — the runtime control bridge, the player's parent-media adoption, the timeline scrub helper — skips elements marked data-vst-chain. Without that, an unrelated volume or mute change silently swaps the processed stream back for the untreated one. STUDIO_VST_ENABLED gates the surface off by default from its first commit, so no partially-wired FX UI is reachable while the stack lands. The VstHostApi contract lives in propertyPanelVstShared (a plain module) rather than in the panel component, so these hooks no longer import their own interface back out of the UI layer.