wavexlr-on-linux-cfg

Wave XLR on Linux

Unofficial instructions to fix issues with Wave XLR (also Wave 1, Wave 3 and XLR Dock) 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.

Issues

No audio signal from the microphone

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.

The workaround

These instructions assume your Linux distribution uses pipewire and wireplumber >=0.5.

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 microphone source, forcing the device to start and keep the microphone capture active.

Step 1. Disable the autoconfigured playback sink and define a custom Lua script.

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.

For Wave 1: create ~/.config/wireplumber/wireplumber.conf.d/51-wave1.conf file.

For XLR Dock: create ~/.config/wireplumber/wireplumber.conf.d/51-xlrdock.conf file.

Step 2. Create a custom wireplumber script.

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 from wavexlrfix.lua to wavedevicefix.lua. Make sure to also replace your old configuration file with the updated version provided above.

The workaround (Alternative)

This fix doesn’t work for me anymore

The following alternative solution was reported in #15. It is much simpler, however it stopped working for me after one of the system updates. I’m going to leave it here for now, in case someone finds it useful and it works on their system.

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 22.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.

For Wave 1: create ~/.config/wireplumber/wireplumber.conf.d/51-wave1.conf file.

For XLR Dock: create ~/.config/wireplumber/wireplumber.conf.d/51-xlrdock.conf file.

The configuration sets the node.always-process property to true on the device source node (microphone input).

Wireplumber 0.4

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.

For Wave 1: create ~/.config/wireplumber/main.lua.d/51-wave1.lua file.

For XLR Dock: create ~/.config/wireplumber/main.lua.d/51-xlrdock.lua file.

Troubleshooting

If the workaround fails, try restarting the wireplumber:

systemctl restart --user wireplumber

To view wireplumber logs

journalctl -u wireplumber --user --lines 30

Changelog

2026-04-12

2026-03-20

2026-02-15

2026-01-24

2026-01-11

2025-12-06

2025-11-29

Contributing

If you’d like to suggest improvements to these instructions, please raise an issue or a PR on this repository.

License

MIT License