Repository navigation
Inside theDAW, every track plays theDAW's rack effects and runs VST3 plugins live; the kit and synth get effect chains - #10
Merged
Conversation
Embedded cockpit: VST3 parameters, editor and renders through theDAW, .gan plugins from theDAW, host file pick
… and plays it live A track's effect chain takes a second family of entries, kind host:<id>, beside the cockpit's own fourteen. When theDAW frames the cockpit it lists 'rack-fx' in sway/host-ready and puts its effect API on this window (window.theDAWHost: catalog, prepare, build). The cockpit adopts it, registers the catalog as kinds, and the transport builds each entry with theDAW's own effect code on the cockpit's AudioContext, in the track's chain where its own effects sit. The parameters draw with the track panel's sliders and picks, and bind to pads, knobs, gestures and sections like any other. The entry (kind, values, on / off, name) is saved in the project. With no host it stays in the project, passes audio through, and the list says it needs theDAW. A cockpit older than this kind drops the entry on load. scripts/test-hostfx.js covers the project round trip and the kind registry.
…synth get effect chains A host with the 'vst-live' cap runs each VST3 row of a track's chain in its own plugin host as the track plays. Each row has a stable id, which names the running plugin across every rebuild; its rawState plus stateHost is the one state a live plugin, a render and the plugin's window read and write, and the host hands every state it captures back to the row. The clips feed the plugins in order as the wet branch; the dry branch waits as long as the chain's reported latency, every track waits for the slowest chain, and the transport (play, stop, seek, loop seam, tempo) reaches every plugin. LIVE on the track's VST3 header switches back to rendered files. The kit and the synth play through two buses (timeline.buses): each has its own effect chain and a live VST3 chain, opened from EFFECTS in the KIT and SYNTH drawers or from the empty panel. The Miracle Mile template carries the song on its audio track.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The cockpit's side of theDAW's
sway-tab-rack-fx-and-vst. Each part is behind a host cap, so the desktop app and an older theDAW keep working as before, and either repository can land first.rack-fx: a track's EFFECTS list gains a THEDAW group with every rack effect, saved askind: "host:<id>"and built by theDAW on this AudioContext.vst-live: each VST3 row has a stable id and runs live in theDAW's plugin host as the track plays. rawState plus stateHost is the row's one state; theDAW hands every captured state back to the row. The clips feed the plugins as the wet branch, the dry branch waits as long as the chain's reported latency, every track waits for the slowest chain, and play, stop, seek, the loop seam and tempo reach the plugins. LIVE on the VST3 header switches a track back to rendered files.timeline.buses), each with its own effect chain and live VST3 chain, opened from EFFECTS in the KIT and SYNTH drawers.Checked:
npm test(hostfx 11 checks, two new for row ids and buses) and the embed build; driven through theDAW's SWAY tab in headless Chromium with zero page errors.theDAW's release builds the cockpit from this repository's main (
SWAY_REF: main), so this ships in the next theDAW release after it merges.