Add two launch arguments to the Mercator application (Mercator56.exe) so each running instance can select its audio devices by name instead of using the Windows defaults:
-MicDevice="<capture device name>" selects the microphone (audio capture) device, for example CABLE-A Output.-AudioOutDevice="<render device name>" selects the audio output (render) device, for example CABLE-A Input or a named virtual speaker.When an argument is absent, keep the current behavior (system default device). Device match should be a case-insensitive substring or exact name match on the WASAPI friendly name, and a missing device should log an error and fall back to the default rather than crash.
The Hydra platform is adding multi-stream bodies (issue #504): one Windows machine runs N concurrent streams, each with its own virtual display, its own Sunshine instance, and its own visitor. The target scenario is three mercator-talks sessions on one RTX A5000 machine, which means three Mercator instances in one Windows session.
Mercator currently reads the default recording device (the platform sets VB-Cable "CABLE Output" as default, fed by hydravoice) and plays to the default render device. With three instances of the same executable:
Windows per-app audio routing cannot separate them because it keys on the executable path, and all three instances are the same exe. Per-instance device selection inside the application is the only clean mechanism.
-MicDevice/-AudioOutDevice values, alongside the existing -ResX/-ResY -windowed -ForceRes args and a per-instance -UserDir.-MicDevice values each capture only their own cable (speak into cable A, only instance A reacts).-AudioOutDevice values render into separate devices (verified with per-device level meters).Contact: this gates the 3x mercator-talks milestone of issue #504 (multi-stream bodies). Test hardware is available at bxl1-test-2 (chunky-turnip-23, RTX A5000).
This request may be unnecessary. Windows per-app audio routing covers capture devices too, and the platform now launches each instance from a per-slot exe path (hardlink), giving each instance its own routing identity. Plan: pin per-slot default input/output devices via SoundVolumeView /SetAppDefault, no app change. This issue stays open as the FALLBACK until the multi-stream hardware spike (issue #504, spike 1) verifies per-app capture routing works for hardlinked exe identities and that Unreal honors the persisted override. Do not start work on this before that spike reports.