Audio output doesn't use the default mixer.

My laptop has an internal Realtek audio card that exposes 2 mixer entries, the first one (index 0) for microphone and speakers and the second one (index 1) for the headphone jack. I also have an external monitor that exposes an HDMI audio interface via a third mixer entry (index 2). Finally, I sometime use a Sennheiser USB headphone+microphone and this provides another mixer entry (index 3).

Everything works out of the box without me doing anything on 14.1-p3, so far so good.

The "problem" I have is that on Linux when I changed the default mixer entry the audio immediately used it but on FreeBSD this doesn't happen. For example, if I'm watching a YouTube video using HDMI (mixer 2) and I set the default mixer to 0 (internal speakers), the audio still comes from the monitor. If I restart the browser (ungoogled-chromium in my case) then the audio comes out from the laptop speakers as expected.

Is this the expected behaviour in FreeBSD? Please note that I don't use sndiod, pulseaudio, pipewire and all that stuff, I just don't need them (I think?)
 
This is expected when not running an extra sound server. I don't know about sndiod, but pulseaudio and virtual_oss can definitely switch the audio device on the fly. They have separate controls / CLI tools for that, though.

Depending on the application it may be sufficient to stop playback and start again, to switch the audio output device.
 
Back
Top