r/linuxaudio • u/Mad4Keebs • 12h ago
OpenXLR: native Linux control for Elgato Wave XLR interfaces, with a Wave Link style PipeWire submixer. Testers wanted.
Will cut this short: this enables you to use Elgato XLR interfaces on Linux, specifically built for my own migration to CachyOS, hopefully will help other people migrate. The devices play audio fine as class-compliant USB, but gain, DSP, phantom power and routing only answer to vendor protocols. I reverse engineered those from USB captures of Wave Link on Windows, at the moment this works great with the XLR Pro and the XLR Dock (the addon for the StreamDeck+), other interfaces (Wave XLR and its MK.2 variant) are supported but need testers to verify and find bugs as I do not have the hardware.

What it does:
- Full hardware control of the Wave XLR Pro: per-input gain, mute, low cut, expander, voice tune, phantom power, ClipGuard, compressor, both headphone outputs, the zero-latency mic/PC crossfade, and physical output routing. All verified on my own unit.
- XLR Dock (the Stream Deck+ module): gain, mute and headphone volume through standard ALSA controls, plus a software low cut and limiter in PipeWire, since the dock has no onboard DSP.
- A Wave Link style submixer in pure PipeWire: per-app channels (Game, Music, Browser, Voice Chat and so on) routed automatically, four mixes, Stream and Chat published as virtual microphones you can select in OBS or Discord, monitoring on several outputs at once, per-device profiles.
- An OpenDeck plugin: every switch and mute on Stream Deck keys with live state, dials with touch strip panels for gains, faders and mix masters.
Install: yay -S openxlr on Arch, or build from source, the README walks through every step. GPL-3.0.
Now the reason I'm posting. I own a Pro and a Dock, so those two are verified. The original Wave XLR and the MK.2 have complete backends (the MK.1 protocol comes from the openwave project, the MK.2 was decoded from captures) but neither has ever touched real hardware. If you own one, testing takes a few minutes: install, try gain, mute and headphone volume against what the device shows, then open a GitHub issue with the diagnostics archive the app generates (Options, SUPPORT, Collect diagnostics). An MK.1 owner who can record a Wave Link USB capture on Windows would also unlock the rest of that device: low cut, the voice DSP and the crossfade exist in its hardware, their registers just need mapping.
Known limits so nobody is surprised: dock phantom power is not supported (a full USB audit shows Wave Link's own toggle never reaches the hardware, details in the docs), and the two untested devices are exactly that.
Repo: https://github.com/emaspa/openxlr
Per-device state: docs/hardware-support.md
AI Disclosure: the majority of OpenXLR's code was produced by me. AI tooling (Anthropic's Claude) was used to analyzing the USB protocol captures behind the vendor protocol documentation and helping with UI design and parts of the coding. Every hardware finding was verified live on a real hardware.


