feat(studio-server,cli): VST sidecar host and carve API - #2920
feat(studio-server,cli): VST sidecar host and carve API#2920vanceingalls wants to merge 1 commit into
Conversation
Adds the studio-server side of the voiceover spectral-carve pipeline: - vstSidecar.ts spawns and supervises the hyperframes-vst host process, resolving it from the published PyPI package (uvx, or an explicit HYPERFRAMES_VST_HOST override), and requires a shared-secret token on the WebSocket so a local port can't be driven by another process on the box. - vstCarve.ts + POST /vst/carve run voiceover analysis and return carve bands. - The CLI re-exports the sidecar through @hyperframes/studio-server/vst-sidecar so preview can stop the process on shutdown, and the Vite dev adapter threads the auth token through to the browser. The host itself is not vendored: it is an external Python package with its own release cadence, so depending on the published build keeps plugin-host upgrades out of this repo's release train.
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
Superseded by the Web Audio implementation. The sidecar approach is replaced by running Web Audio graphs on both ends: the studio previews in a live AudioContext, and the engine renders the same graphs in an OfflineAudioContext inside the headless browser it already drives. One implementation per effect, so preview matching render is a property of the architecture rather than a tolerance to police — which is what made the four effects that diverged under JUCE (compressor, limiter, chorus, phaser) stop being a problem. That also retires the reasons this was cancelled in the first place: no spawned sidecar process, no external GPL repo, no Measurements behind the decision: https://claude.ai/code/artifact/219fd332-0542-4bcf-a4b7-7b7202e63fde Branch left intact. |

Stack 2/5 — replaces #2602–#2605. Base: #2919.
The studio-server side of the voiceover spectral-carve pipeline.
vstSidecar.tsspawns and supervises thehyperframes-vsthost, resolving it from the published PyPI package (uvx, or an explicitHYPERFRAMES_VST_HOSToverride). A shared-secret token is required on the WebSocket so a local port can't be driven by another process on the box.vstCarve.ts+POST /vst/carverun voiceover analysis and return carve bands.@hyperframes/studio-server/vst-sidecarsopreviewcan stop it on shutdown; the Vite dev adapter threads the auth token to the browser.Why this replaces the old stack
The host is not vendored into the monorepo. #2602 added
packages/vst-host/(27 files, ~2,600 lines of Python), #2603 edited it, and #2604 deleted it again to point at PyPI — so it never reachedmainbut cost ~2,600 added and ~2,600 deleted lines of review surface. Here it never exists.Deletions in this PR: 1 line.
🤖 Generated with Claude Code