How do I prevent sound from moving between monitors?

I have three monitors, right, left, center.

The center monitor has good stereo sound.

No mater which monitor is active I want the sound to stay on the center monitor.

The right monitor has no sound so it is not an issue.

If I turn on the left monitor, that sounds like mono-crap, the sound moves to it.
I don’t want that to happen.

I want the system to only think the center monitor can play sound.
How do I achieve this?

If you want sound to play to one specific monitor the monitor would probably need to remain active to play sound

If the HDMI outputs for other monitors are muted in ALSA, PulseAudio should recognise that they are unavailable for audio playback and audio streams will not be switched

Use alsamixer in terminal to adjust audio hardware settings

  • Use F6 to find audio card for HDMI audio outputs

  • and to select each output in turn

  • and M to mute unused outputs

And use this command to save new ALSA settings

sudo alsactl store

On my system, only S/PDIF 2 (HDMI 2) is unmuted

Sadly that is not working.

As soon as I turn the second monitor on the sound switches to it.
When I mute it the sound goes off on both monitors.
It really seems like the same HDMI output is feeding both monitors, which seems unlikely.

The driver is a “Tonga HDMI audio [Radion R9 285/380 Digital Stereo (HDMI)”.

One monitor is branded Sceptre and the other Silo.
Yet the single remote control works both monitors.
I have to make sure that I’m careful how I aim the remote.

If the remote control is trying to change audio volume on a non-audio monitor it may be causing the PulseAudio profile to switch audio playback away from the audio playback monitor

I suggest you cover the remote sensor for the non-audio monitor to test if the audio does not switch monitors

You can use this command to find the correct active HDMI profile

pacmd dump | grep hdmi | grep profile

If the profile is changed to another HDMI you can use pacmd + the response from that command to change it back

Example: on my system the command to set the correct profile is

pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1