Firefox/BBB uses ALC1220 monitor instead of RØDE NT-USB → auto-switches back after 1 second

Hi,

I’m on CachyOS with KDE Plasma and Wayland, using PipeWire 1.6.6.

My USB microphone is a RØDE NT-USB and it is detected correctly by the system.
But Firefox/BigBlueButton keeps using the monitor of my onboard audio instead.

Exact system state:

# pactl get-default-source
alsa_input.usb-RODE_Microphones_RODE_NT-USB-00.analog-stereo

# wpctl status (Sources section)
Sources:
53. Starship/Matisse HD Audio Controller Analoges Stereo [vol: 0.26]
* 103. RODE NT-USB Analoges Stereo [vol: 1.00]

# Settings → Default Configured Devices
0. Audio/Sink    alsa_output.pci-0000_0c_00.4.analog-stereo
1. Audio/Source  alsa_input.usb-RODE_Microphones_RODE_NT-USB-00.analog-stereo

Microphone works correctly:

  • arecord -D plughw:2,0 -f cd -d 5 test.wav → records my voice
  • aplay test.wav → plays back correctly
  • Browser mic tests (test.webrtc.org, mictests.com) detect RØDE and recording works

Problem only with Firefox/BigBlueButton:

From previous wpctl status:

Streams:

  1. Firefox

  2. output_FL > ALC1220 Analog:playback_FL [active]

  3. Firefox

  4. input_FR < ALC1220 Analog:monitor_FR [active]

  5. input_FL < ALC1220 Analog:monitor_FL [active]

**Firefox/WEBRTC VoiceEngine is using:
- `input_FR < ALC1220 Analog:monitor_FR`
- `input_FL < ALC1220 Analog:monitor_FL`

Instead of the actual RØDE microphone.

**Symptoms:**
1. In BigBlueButton, I hear my voice **double**:
- Once from direct monitoring (RØDE hardware)
- Once from WebRTC echo

2. In BBB audio menu, I only see:
- "Monitor of Ausgabe"
- "Ausgabe"
- RØDE not listed properly

3. In pavucontrol (Recording tab):
- Firefox/WEBRTC shows
- Source is "Monitor of ALC1220"
- I can switch to "RODE NT-USB" manually
- **But after ~1 second it jumps back to "Monitor of Starship/Matisse HD Audio"**

**What I tried:**
```bash
# Set RØDE as default
wpctl set-default 103
pactl set-default-source alsa_input.usb-RODE_Microphones_RODE_NT-USB-00.analog-stereo

# Kill Firefox completely
killall firefox

# Reopen Firefox + BBB, select RØDE explicitly
# (not "default")
```

After `wpctl set-default 103`:**

Settings
Default Configured Devices:

  1. Audio/Sink alsa_output.pci-0000_0c_00.4.analog-stereo

  2. Audio/Source alsa_input.usb-RODE_Microphones_RODE_NT-USB-00.analog-stereo

**This fixed it **for now**, but the root cause is still unknown.

**Open questions for developers/community:**

1. Why does Firefox/WebRTC keep switching back to the ALC1220 monitor?
- Is this a Firefox WebRTC bug with PipeWire?
- Does WebRTC "remember" the wrong device?

2. In `wpctl status` I see these KDE clients:
- `plasmashell [pid: 1414]`
- `kwin_wayland [pid: 1284]`**
**
Could KDE Plasma's automatic device prioritization be overriding my settings?

3. How to permanently prevent Firefox from switching back to Monitor?
- Is there a Firefox config setting?
- Is there a PipeWire/WirePlumber rule?

4. Why does BBB only show "Monitor of Ausgabe" instead of the actual mic?
- Is this a BBB WebRTC issue?
- Or PipeWire device naming?

**System info:**
- CachyOS (latest)
- KDE Plasma 6.x (Wayland)
- PipeWire 1.6.6
- RØDE NT-USB (USB microphone)
- Mainboard: ALC1220 (onboard audio)
- GPU: Starship/Matisse HD Audio (HDMI audio)

**Why this matters:**
- USB microphones are common for streaming, calls, recording
- Auto-switching back to wrong device breaks usability
- This affects all Firefox WebRTC apps (BBB, Discord web, Zoom web, etc.)**

Update: the issue is fixed now.

We set the RØDE NT-USB as the default input device in PipeWire/WirePlumber:

wpctl set-default 103
pactl set-default-source alsa_input.usb-RODE_Microphones_RODE_NT-USB-00.analog-stereo
wpctl status

In wpctl status, the RØDE now shows up correctly under “Default Configured Devices” as the default Audio/Source, and it is also the active source.

We also adjusted the audio priority in KDE Plasma so that the RØDE NT-USB is above the motherboard audio and the HDMI/monitor audio.

In my case, the problem was also related to the USB port: if the microphone was plugged into the wrong port, it kept switching back and forth. After moving it to a different USB port/interface, it works properly now.