feat: add per-node Ableton Link Audio publishing #1
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/per-node-link-audio-publish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Any plugin/built-in effect node, plus the Audio Input and Audio Output
device nodes, can now be individually opted in to publish its own
rendered audio as a named Link Audio sink, alongside the existing
master-bus sink - mirroring how Ableton Live exposes per-track Link
Audio routing rather than only a master send.
every VST3/AU plugin and built-in effect processor). Device I/O nodes
can't implement it directly - JUCE's AudioProcessorGraph renders
AudioGraphIOProcessor nodes via direct buffer copies (AudioInOp/
AudioOutOp) rather than calling processBlock(), so they're tapped via
two dedicated slots on LinkAudioService fed from
MeteringProcessorPlayer's existing audio callback instead.
unregisterNodeSink/publishNodeAudio), with teardown ordering that
keeps the audio thread from ever touching a sink mid-destruction.
canNodePublishToLinkAudio as the single dispatch point; persists the
choice per-node in patch XML; cleans up on node deletion and graph
clear/restore.
eligible nodes, shown only while Link Audio is enabled in
Preferences.
Also fixes two bugs found while testing this interactively:
destination pins unconditionally, but a connection being actively
dragged from an output pin has a null destination until dropped on a
pin - right-clicking that in-progress cable crashed.
deleting it (use-after-free).