Volume Control doesn't preserve the fallback device

I have an audio interface that has two sets of outputs.
изображение

After reboot, the fallback output is always set to “M Series Line Out”. I can change it in the Volume Control to “M Series Headphone + Monitor Out”, but it doesn’t persist after a reboot.

How can I make this change permanent?

Please post more information about audio sinks (output devices) and audio server configuration

pactl list sinks; echo; pactl info
Sink #85
	State: SUSPENDED
	Name: alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_2_3__sink
	Description: M Series Line Out
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65280 / 100% / -0,10 dB,   front-right: 65280 / 100% / -0,10 dB
	        balance 0,00
	Base Volume: 65536 / 100% / 0,00 dB
	Monitor Source: alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_2_3__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.card = "3"
		alsa.card_name = "M4"
		alsa.class = "generic"
		alsa.device = "0"
		alsa.driver_name = "snd_usb_audio"
		alsa.id = "USB Audio"
		alsa.long_card_name = "MOTU M4 at usb-0000:00:14.0-5.4, high speed"
		alsa.mixer_device = "_ucm0007.hw:M4"
		alsa.name = "USB Audio"
		alsa.resolution_bits = "32"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		api.alsa.card.longname = "MOTU M4 at usb-0000:00:14.0-5.4, high speed"
		api.alsa.card.name = "M4"
		api.alsa.open.ucm = "true"
		api.alsa.path = "m4_stereo_out:M4,0,2,3"
		api.alsa.pcm.card = "3"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "2"
		device.api = "alsa"
		device.class = "sound"
		device.id = "61"
		device.profile.description = "Line Out"
		device.profile.name = "HiFi: m4_stereo_out:M4,0,2,3: sink"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "M Series"
		node.name = "alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_2_3__sink"
		node.nick = "M4"
		node.pause-on-idle = "false"
		object.path = "alsa:pcm:3:m4_stereo_out:M4,0,2,3:playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "35"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "85"
		object.serial = "85"
		node.max-latency = "12000/48000"
		api.alsa.period-size = "480"
		api.alsa.period-num = "50"
		api.alsa.headroom = "480"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "3"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio3"
		device.bus = "usb"
		device.bus-id = "usb-MOTU_M4_M40000068249-00"
		device.bus_path = "pci-0000:00:14.0-usb-0:5.4:1.0"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-usb"
		device.name = "alsa_card.usb-MOTU_M4_M40000068249-00"
		device.nick = "M4"
		device.plugged.usec = "12464654"
		device.product.id = "0x0008"
		device.product.name = "M Series"
		device.serial = "MOTU_M4_M40000068249"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.0/sound/card3"
		device.vendor.id = "0x07fd"
		device.vendor.name = "Mark of the Unicorn"
		device.string = "3"
	Ports:
		[Out] Line2: Line Out (type: Line, priority: 100, availability unknown)
	Active Port: [Out] Line2
	Formats:
		pcm

Sink #86
	State: SUSPENDED
	Name: alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink
	Description: M Series Headphone + Monitor Out
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
	        balance 0,00
	Base Volume: 65536 / 100% / 0,00 dB
	Monitor Source: alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.card = "3"
		alsa.card_name = "M4"
		alsa.class = "generic"
		alsa.device = "0"
		alsa.driver_name = "snd_usb_audio"
		alsa.id = "USB Audio"
		alsa.long_card_name = "MOTU M4 at usb-0000:00:14.0-5.4, high speed"
		alsa.mixer_device = "_ucm0007.hw:M4"
		alsa.name = "USB Audio"
		alsa.resolution_bits = "32"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		api.alsa.card.longname = "MOTU M4 at usb-0000:00:14.0-5.4, high speed"
		api.alsa.card.name = "M4"
		api.alsa.open.ucm = "true"
		api.alsa.path = "m4_stereo_out:M4,0,0,1"
		api.alsa.pcm.card = "3"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "3"
		device.api = "alsa"
		device.class = "sound"
		device.id = "61"
		device.profile.description = "Headphone + Monitor Out"
		device.profile.name = "HiFi: m4_stereo_out:M4,0,0,1: sink"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "M Series"
		node.name = "alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink"
		node.nick = "M4"
		node.pause-on-idle = "false"
		object.path = "alsa:pcm:3:m4_stereo_out:M4,0,0,1:playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "35"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "86"
		object.serial = "86"
		node.max-latency = "12000/48000"
		api.alsa.period-size = "480"
		api.alsa.period-num = "50"
		api.alsa.headroom = "480"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "3"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio3"
		device.bus = "usb"
		device.bus-id = "usb-MOTU_M4_M40000068249-00"
		device.bus_path = "pci-0000:00:14.0-usb-0:5.4:1.0"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-usb"
		device.name = "alsa_card.usb-MOTU_M4_M40000068249-00"
		device.nick = "M4"
		device.plugged.usec = "12464654"
		device.product.id = "0x0008"
		device.product.name = "M Series"
		device.serial = "MOTU_M4_M40000068249"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.0/sound/card3"
		device.vendor.id = "0x07fd"
		device.vendor.name = "Mark of the Unicorn"
		device.string = "3"
	Ports:
		[Out] Line1: Headphone + Monitor Out (type: Line, priority: 200, availability unknown)
	Active Port: [Out] Line1
	Formats:
		pcm

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 219
Tile Size: 65472
User Name: ave
Host Name: arcmob
Server Name: PulseAudio (on PipeWire 0.3.65)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink
Default Source: alsa_input.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_in_M4_0_2_3__source
Cookie: f545:299b

Another user reported a similar problem with MOTU M4
reddit.com/r/linuxaudio - Pavucontrol Changes my Fallback Device After a Reboot
OP solution of reconfiguring wireplumber does not appear to have been successful
It may also not be relevant to your situation with no Bluetooth devices

PipeWire data is showing default-sink is set to M Series Line Out
alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink

I suggest changing default-sink to M Series Headphone + Monitor Out

pactl set-default-sink alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_2_3__sink

If that does not work as intended (it might not persist after reboot) try editing ALSA use case manager configuration /usr/share/alsa/ucm2/USB-Audio/MOTU/M4-HiFi.conf and change values for PlaybackPriority

SectionDevice."Line1" {
	Comment "Headphone + Monitor Out"
	Value {
		PlaybackPriority 200
    }
SectionDevice."Line2" {
	Comment "Line Out"

	Value {
		PlaybackPriority 100
	}

Neither the first nor the second methods work. The first one doesn’t survive the reboot, the second has no effect whatsoever.

I copied a solution from Reddit and it worked.
/home/ave/.config/wireplumber/main.lua.d/60-raise-motu-m4-priority.lua:

rule = {
  matches = {
    {
      { "node.name", "equals", "alsa_output.usb-MOTU_M4_M40000068249-00.HiFi__m4_stereo_out_M4_0_0_1__sink" },
    },
  },
  apply_properties = {
    ["priority.session"] = 1050,
  },
}

table.insert(alsa_monitor.rules,rule)

Instructions how to find the node’s name: WirePlumber - ArchWiki

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.