
What it does
Most consoles have no automixer, and the usual way to add one costs something: insert the automixer on every channel and it eats an insert slot per channel, sitting wherever the desk's insert point happens to be — usually pre-fader. Run each mic through two channel strips instead and the channel count doubles.
MixerReturn enables a third arrangement. The automixer runs on the channel direct outs, set to follow the fader, with one SuperRack rack per channel; MixerReturn sums those automixed channels down to a single stereo pair, which returns to the desk as a group's external input. The operator keeps working ordinary channel strips, the automixer sits post-fader without any insert point being moved, and the insert slots stay free for the plugins that would normally live there.
The summing is the one piece neither the desk nor the host provides. SuperRack's patcher allows only one rack per output I/O, so twenty-four rack outputs cannot be patched onto one output to mix them; the desk can only sum them by spending twenty-four input channels to do it. SuperRack Performer gained third-party VST3 hosting in v14, which is what makes filling that gap with a plugin possible at all.
- Eight independent summing buses, shared across every instance in the host
- Sending and receiving are independent per instance — a sender, a receiver, or both
- Per-instance send trim and mute, over the same -inf to +10 dB range the SQ's own direct out trim uses, so the two read alike
- Output modes: pass the rack's own input through, replace it with the bus sum, or both
- One block of delay on the sum, identical for every sender whatever order the host processes instances in
- Live member count and latency readout, so a rack that never joined the bus is visible rather than merely quiet
- Nothing in the audio path takes a lock or allocates — bus and slot are packed into a single atomic the audio thread reads
Where it stands
v0.1.0 and not yet tagged. The summing bus is verified numerically against the shipped processor class — a one-block delay with the summing instance processed both first and last, 24 senders with the host's processing order reshuffled on every block, and 400 blocks with 17 instances racing on their own threads — it is clean under ThreadSanitizer, pluginval passes at strictness 8 on VST3 and on AU with one benign wrapper warning, and the built VST3 has been loaded the way a host loads it to confirm that instances really do share one bus. It has not been loaded in SuperRack Performer, run against a real console, or used on a show; every claim about console behaviour comes from the Allen & Heath SQ reference guide rather than from hardware. The concurrent test earned its keep immediately: it found a bug that every sequential test had passed straight through. The audio path took a process-wide try-lock and skipped the block when it lost, which is invisible on one thread — a single thread always wins an uncontended try-lock — and silently drops instances out of the sum once a host spreads racks across several. A try-lock does not make a shared structure real-time safe; it converts contention into dropped work.