Elgato Wave 3 Fails to Work as Microphone

Issue Description

A friend gifted me an Elgato Wave 3 a while back and I hadn’t had a chance to use it because I didn’t have a proper mic setup. Now, I have a proper setup using a new desktop that runs Pop OS 22.04. The issue is that the microphone part of the Wave 3 only sometimes works. Some order of changes in the configuration of PulseAudio Volume Control allows it to work for some time before it stops collecting audio. This is problematic as I use Discord to communicate with friends.

I have an Audio-Technica ATH-M50x connected to the Wave 3 for audio output via 3.5mm jack, and the Wave 3 is connected via USB-A Gen 3.1 to the desktop. The Wave 3 should function flawlessly as audio input and output, but it doesn’t. Only the audio output works 100% of the time.

Things I’ve Tried

Scouring the internet for solutions, I’ve come across many. Here are the ones I’ve tried:

  1. Using PulseAudio Volume Control to see if the mic accepts input.
  2. Plugging the Wave 3 into my monitors (it uses USB-C to USB-A) for more power.
  3. Ensuring that Discord is not the problem (it is not, it works in Discord 1/5 times).
  4. Running any number of commands in Terminal to see if the audio server is running/device is picked up or detected.

Other Info

Pop OS comes with PipeWire installed as the default, so anything regarding installing PipeWire to fix the issue is shot. I’ve read a few articles on Reddit about how the Elgato Wave 3 doesn’t work properly on Linux but I wanted to see if someone in here has an actual fix for this problem before I try something else.

Alternatives

I currently do not have a 3.5mm cable long enough to plug into my desktop, which could also potentially “fix” the issue as the Wave 3 would function only as input and not both input and output.

1 Like

Are you seeing any errors within dmesg?

If so posting the error on here could help. I’m not very familiar with Elegato’s microphone hardware, but I would not be shocked if they have compatibility issues with linux. I use a blue yeti and have had no issues with them.

1 Like

What exactly should I be looking for when using dmesg? It spits out a lot of information when I simply do sudo dmesg.

Sorry, haven’t used this tool before so forgive me for being noobish.

[   15.646668] snd_hda_intel 0000:e1:00.1: Handle vga_switcheroo audio client
[   15.646847] snd_hda_intel 0000:e2:00.1: Handle vga_switcheroo audio client
[   15.673930] snd_hda_codec_realtek hdaudioC2D0: autoconfig for ALC1220: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[   15.673934] snd_hda_codec_realtek hdaudioC2D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   15.673936] snd_hda_codec_realtek hdaudioC2D0:    hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[   15.673938] snd_hda_codec_realtek hdaudioC2D0:    mono: mono_out=0x0
[   15.673939] snd_hda_codec_realtek hdaudioC2D0:    inputs:
[   15.673940] snd_hda_codec_realtek hdaudioC2D0:      Rear Mic=0x1a
[   15.673942] snd_hda_codec_realtek hdaudioC2D0:      Front Mic=0x19
[   15.809791] usbcore: registered new interface driver snd-usb-audio
[   25.280724] Modules linked in: snd_seq_dummy snd_hrtimer nvidia_uvm(POE) zstd nvidia_drm(POE) nvidia_modeset(POE) zram nvidia(POE) snd_hda_codec_realtek snd_hda_codec_generic binfmt_misc snd_hda_scodec_component amd_atl intel_rapl_msr intel_rapl_common snd_hda_codec_hdmi amd64_edac snd_usb_audio edac_mce_amd ipmi_ssif snd_usbmidi_lib snd_hda_intel nls_iso8859_1 snd_ump snd_seq_midi snd_intel_dspcfg kvm_amd snd_seq_midi_event snd_intel_sdw_acpi snd_hda_codec snd_rawmidi snd_hda_core eeepc_wmi kvm mc snd_hwdep snd_seq asus_wmi platform_profile snd_pcm sparse_keymap joydev wmi_bmof input_leds rapl snd_seq_device video bfq snd_timer snd ccp soundcore k10temp sp5100_tco acpi_ipmi ipmi_si ipmi_devintf ipmi_msghandler mac_hid sch_fq_codel kyber_iosched msr parport_pc ppdev lp parport efi_pstore ip_tables x_tables autofs4 dm_crypt cdc_ether usbnet mii raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 system76_io(OE) system76_acpi(OE) uas usb_storage hid_logitech_dj

Doing a simple sudo dmesg | grep audio yields this. It looks about like what I should be looking for, but I could be missing other stuff because I only looked for audio.

Apologies it took me a moment to get back to ya. Glad you were able to find the command.

So it’s showing that it was successfully registered under USB. At least as of right now. If you can induce the error then rerun the command it could help narrow down the error. But my money is that the issue is going to be related to compatibility with your flavor of Linux.

I did find this after a cursory google search as well. Could be worth trying: sound - Elgato Wave 3 only as input or output but not both - Ask Ubuntu

1 Like

I don’t know how to induce the error is part of the issue. If I did, I could at least have a workaround by knowing how it is induced and then not do that, or do the opposite to resolve the issue when it pops up.

I tried running sudo dmesg | grep audio again, but this time it didn’t output anything. I don’t know why, but I hit Enter and nothing shows up. So I did sudo dmesg again just to make sure the command works and I just get a bunch of this:

[ 9507.331724] snd_hda_intel 0000:e2:00.1: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID)
[ 9507.331728] snd_hda_intel 0000:e2:00.1:   device [10de:10f0] error status/mask=00001000/00000000
[ 9507.331732] snd_hda_intel 0000:e2:00.1:    [12] Timeout
[ 9507.447407] pcieport 0000:e0:03.1: AER: Multiple Correctable error message received from 0000:e2:00.0
[ 9507.447432] nvidia 0000:e2:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID)
[ 9507.447436] nvidia 0000:e2:00.0:   device [10de:1b80] error status/mask=00001000/00000000
[ 9507.447440] nvidia 0000:e2:00.0:    [12] Timeout
[ 9507.447444] nvidia 0000:e2:00.0: AER:   Error of this Agent is reported first
[ 9507.447454] snd_hda_intel 0000:e2:00.1: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID)
[ 9507.447458] snd_hda_intel 0000:e2:00.1:   device [10de:10f0] error status/mask=00001000/00000000
[ 9507.447462] snd_hda_intel 0000:e2:00.1:    [12] Timeout
[ 9507.464856] pcieport 0000:e0:03.1: AER: Multiple Correctable error message received from 0000:e2:00.0
[ 9507.464870] nvidia 0000:e2:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID)
[ 9507.464874] nvidia 0000:e2:00.0:   device [10de:1b80] error status/mask=00001000/00000000

Probably completely unrelated.

As for that page, yeah I found it and the steps didn’t work for me despite being on Pop OS and using Pulse Audio Volume Control. The options they mentioned do not show up for me; I only get this:

image
image

for my dual input+output options. Separating the channels as mentioned in the link doesn’t yield any multichannel audio input, only “Microphone”:

So yeah, I have no idea what’s going on. If it worked before for this person, then maybe Pop OS broke it somehow or the apps changed/removed functionality or the Wave 3 isn’t able to send the proper information so that the PC can detect it.

1 Like

So you shouldn’t be getting those errors. These are usually indicative that you need a BIOS update. If not then your most likely waiting on a update from Pop OS itself.

Very annoying, but that was a 4 year old post. Was hoping it would still be relevant since you are on Pop OS.

Yeah, it’s very perplexing. I am thinking you’re most likely dealing a with driver/firmware issue. I would try some of the basics for updating the OS, drivers, and BIOS.

It also could be PulseAudio not playing well with the mic due to the above driver issue. You could try installing pipewire: https://pipewire.org/

I’ve never used pipewire, but have heard some good things about it. Just make sure to make a backup of your PC with something like clonezilla/rescuezilla before messing with it so if you need to you can easily reset your PC if you bork your audio.

If none of the above works then my money is Elegato has borked firmware for Linux.

1 Like

My mainboard is the ASUS Pro WS WRX90E-SAGE SE, which I recently upgraded to BIOS 0803. As of this post, this is the latest BIOS for the mainboard, so it can’t be that (unless ASUS screwed up).

Pop OS comes with Pipewire installed already. I suppose I could try to reinstall it but I don’t think that would help much.

I will continue to wait, as Pop OS 24.04 is currently in alpha and because I plan to stay in this OS I could just wait it out and see if it fixes things. However, until that comes out, I don’t have any other ideas. I do highly suspect a driver/firmware issue, but since my PC hardware is off-the-shelf I don’t think anything on Pop OS’s firmware update page would help me. Nor does the System Firmware page suggest that I have any pending updates that I need to install for the firmware.

image

image

1 Like

Did a little more digging and found this information. Pop OS (22.04) uses PulseAudio on PipeWire, as shown in this output of pactl info:

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 188
Tile Size: 65472
User Name: |REDACTED|
Host Name: |REDACTED|
Server Name: PulseAudio (on PipeWire 1.0.3)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Elgato_Systems_Elgato_Wave_3_BS14M1A01647-00.analog-stereo
Default Source: alsa_input.usb-Elgato_Systems_Elgato_Wave_3_BS14M1A01647-00.mono-fallback.3
Cookie: 47ad:cd90

Now the curious thing is that I was told on Pop OS’ official forums that I should install PulseAudio Volume Control. The thing is, most of time it only works as pure input or pure output, and PulseAudio Volume Control will reflect this, but trying to change anything using pacmd doesn’t work: it’ll report that no daemon is running:

~$ pacmd info
No PulseAudio daemon running, or not running as session daemon.

Furthermore, when I run pipewire-pulse (because I assume this is what the actual audio server is), it spits this out:

[W][00197.892361] mod.protocol-pulse | [        server.c:  589 start_unix_server()] server 0x576b99afb520: socket '/run/user/1000/pulse/native' is in use
[W][00197.892446] mod.protocol-pulse | [        server.c: 1021 servers_create_and_start()] pulse-server 0x576b99afad70: failed to start server on 'unix:/run/user/1000/pulse/native': Address already in use
[E][00197.892457] mod.protocol-pulse | [  pulse-server.c: 5526 pw_protocol_pulse_new()] 0x576b99afad70: no servers could be started: Address already in use
[E][00197.892507] pw.conf      | [          conf.c:  573 load_module()] 0x576b99ac58d0: could not load mandatory module "libpipewire-module-protocol-pulse": Address already in use
[E][00197.892688] default      | [      pipewire.c:  105 main()] failed to create context: Address already in use

My gut takeaway from all this is that I feel PulseAudio Volume Control is communicating with the server properly, and therefore won’t allow me to change the Wave 3’s functionality to anything other than basic input or basic output. I know jackshit about audio, but I would guess that there is some more advanced stuff going on in order for the input and ouput channels to be use at the same time, which something in this chain is breaking, and therefore removing my ability to use the microphone as a combo input/output.

I will reiterate that it has worked as intended before on a handful of occasions, but this is the exception to its current behavior, and not the rule.

Minor addendum to the last post:

In a fit of frustration, I unplugged the headphones from the jack at the back of the Wave 3. I had PulseAudio Volume Control open, and the Wave 3 was set to “Mono Input”. Obviously, in this mode it was able to pick up sound. I plugged my headphones back into the back of the Wave 3, and change the mode to “Digital Stero (IEC958) Output + Mono Input”. It was still picking up audio, and was able to play back a video I opened to test if the output worked. It did in fact, work! However, I’m not yet convinced this is a consistent and repeatable workaround for my problem so I am hesistant to call this a solution just yet. It is unfortunate if this is a viable “solution”, but at this point I’ll take “unplugging it and plugging it back in” over nothing.

I wonder if there is anyone at Elgato I can poke to provide official support for Linux users…

I should have noticed this sooner, and I don’t know what is causing this, but when I set the configuration of my Elgato to Digital Stereo (IEC958) Output + Mono Input, the Input Devices section will also show the Monitor of Elgato Wave 3 Digital Stereo (IEC958) as an input. Why is my output being detected as an input? The actual microphone shows up as well, but nothing is being captured through the microphone. I’ve pasted an image of this below.

Before anyone asks, the output also shows up in the Output Devices tab, as it should.

Disabling the Monitor... Stereo as an input by clicking the sound icon in PulseAudio Volume Control doesn’t do anything. I suspect there’s some driver issue within Linux that has difficulty detecting/disambiguating audio channels on “complex” devices like the Elgato, but I have no idea.

However, it does work if I click around PulseAudio Volume Control enough, so it can work, I just don’t know how to make it do so consistently. Perhaps someone will see this and be able to act upon this clue.

Something seemed to work:

My microphone was not capturing any audio, but when I joined a channel in Discord and switched the Configuration to Pro Audio, it worked. And when I switched it again to Digital Stereo + Mono Input, it still worked.

I don’t know if this is a fluke, but I’m writing this down and future me will see if this can be reliably replicated. It seems weird that the microphone will only “start working” in this way.

Note how there is now a small blue bar for the Microphone; this shows it is picking up background noise, and when the microphone works, that bar is almost always there (because the computer fans are always spinning).