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 voiceaplay 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:
-
Firefox
-
output_FL > ALC1220 Analog:playback_FL [active]
-
Firefox
-
input_FR < ALC1220 Analog:monitor_FR [active]
-
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:
-
Audio/Sink alsa_output.pci-0000_0c_00.4.analog-stereo
-
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.)**