Unofficial instructions to fix issues with Wave XLR (and also Wave 3) on Linux.
As of November 2024, Wave XLR does not have official Linux support - Elgato Wave XLR - System Requirements.
However, since the device is recognized by the system as a standard USB audio device, some functionality can be accessed on Linux.
Disclaimer: The instructions and information on this page are unofficial and not endorsed or supported by device manufacturer - Elgato. The content of this page is based on my personal experience and may not work in all cases. I cannot guarantee the accuracy or reliability of the information provided. Use at your own risk. No warranties or guarantees, express or implied, are provided.
When the device is used for both playback and recording, the microphone produces no audio signal.
Other users have reported the same issue:
After some trial and error, I found that the issue is most likely not related to pipewire and is more low-level. It’s reproducible with playback and recording from raw ALSA devices without pipewire or pulseaudio running.
If you start playing an audio and then initiate recording from the microphone, there is no signal detected from the microphone. However, when the process is reversed, starting the recording first then playback, everything seems to work fine.
These instructions assume your Linux distribution uses pipewire and wireplumber >=0.5.
Note: For wireplumber version 0.4, such as the one installed on Ubuntu 24.04 LTS, refer to the instructions here.
Create the directory if it doesn’t exist ~/.config/wireplumber/wireplumber.conf.d/:
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
For Wave XLR: create ~/.config/wireplumber/wireplumber.conf.d/51-wavexlr.conf file.
For Wave 3: create ~/.config/wireplumber/wireplumber.conf.d/51-wave3.conf file.
The configuration sets the node.always-process property to true on the device source node (microphone input).
Create the directory if it doesn’t exist ~/.config/wireplumber/main.lua.d/:
mkdir -p ~/.config/wireplumber/main.lua.d/
For Wave XLR: create ~/.config/wireplumber/main.lua.d/51-wavexlr.lua file.
For Wave 3: create ~/.config/wireplumber/main.lua.d/51-wave3.lua file.
If you experience issues with the new approach, here is the original workaround:
The steps below configure wireplumber so that Wave XLR playback node is created only after the microphone source is activated. A custom script creates a virtual sink node and links it to the Wave XLR microphone source, forcing the device to start and keep the microphone capture active.
It was reported that the same workaround works for Wave 3 microphones - Works for Wave 3 too
Create the directory if it doesn’t exist ~/.config/wireplumber/wireplumber.conf.d/:
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
For Wave XLR: create ~/.config/wireplumber/wireplumber.conf.d/51-wavexlr.conf file.
For Wave 3: create ~/.config/wireplumber/wireplumber.conf.d/51-wave3.conf file.
Create the directory if it doesn’t exist ~/.local/share/wireplumber/scripts/:
mkdir -p ~/.local/share/wireplumber/scripts/
Create the file ~/.local/share/wireplumber/scripts/wavedevicefix.lua
[!IMPORTANT]
If you’re upgrading from a version released before December 2025, be aware that the script file has been renamed fromwavexlrfix.luatowavedevicefix.lua. Make sure to also replace your old configuration file with the updated version provided above.
If the workaround fails, try restarting the wireplumber:
systemctl restart --user wireplumber
To view wireplumber logs
journalctl -u wireplumber --user --lines 30
session.suspend-timeout-seconds: 0 on the device sink. #13If you’d like to suggest improvements to these instructions, please raise an issue or a PR on this repository.