linux-guide-split-audio-ports icon indicating copy to clipboard operation
linux-guide-split-audio-ports copied to clipboard

my info was different

Open LemuelDayrit opened this issue 10 months ago • 3 comments

I try to run the two commands at the beginning and i noticed that its different from what you show

This is for the pactl list cards

Card #46
	Name: alsa_card.pci-0000_07_00.6
	Driver: alsa
	Owner Module: n/a
	Properties:
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "2"
		api.alsa.card.longname = "HD-Audio Generic at 0xfc5c0000 irq 102"
		api.alsa.card.name = "HD-Audio Generic"
		api.alsa.path = "hw:2"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio2"
		device.api = "alsa"
		device.bus = "pci"
		device.bus_path = "pci-0000:07:00.6"
		device.description = "Family 17h/19h HD Audio Controller"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_07_00.6"
		device.nick = "HD-Audio Generic"
		device.plugged.usec = "7832778"
		device.product.id = "0x15e3"
		device.product.name = "Family 17h/19h HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card2"
		device.vendor.id = "0x1022"
		device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
		media.class = "Audio/Device"
		factory.id = "14"
		client.id = "33"
		object.id = "46"
		object.serial = "46"
		object.path = "alsa:pcm:2"
		alsa.card = "2"
		alsa.card_name = "HD-Audio Generic"
		alsa.long_card_name = "HD-Audio Generic at 0xfc5c0000 irq 102"
		alsa.driver_name = "snd_hda_intel"
		device.string = "2"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		HiFi: Play HiFi quality Music (sinks: 1, sources: 2, priority: 8000, available: yes)
		pro-audio: Pro Audio (sinks: 2, sources: 1, priority: 1, available: yes)
	Active Profile: HiFi
	Ports:
		[Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "speaker"
				device.icon_name = "audio-speakers"
				card.profile.port = "0"
			Part of profile(s): HiFi
		[Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, availability group: Headphone, not available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Headphone"
				device.icon_name = "audio-headphones"
				card.profile.port = "1"
			Part of profile(s): HiFi
		[In] Mic2: Headphones Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, availability group: Mic, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "2"
			Part of profile(s): HiFi
		[In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "3"
			Part of profile(s): HiFi

And this is for the pactl list sinks

Sink #91
	State: RUNNING
	Name: alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink
	Description: Family 17h/19h HD Audio Controller Speaker + Headphones
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 55706 /  85% / -4.23 dB,   front-right: 55706 /  85% / -4.23 dB
	       balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.card = "2"
		alsa.card_name = "HD-Audio Generic"
		alsa.class = "generic"
		alsa.device = "0"
		alsa.driver_name = "snd_hda_intel"
		alsa.id = "ALC245 Analog"
		alsa.long_card_name = "HD-Audio Generic at 0xfc5c0000 irq 102"
		alsa.mixer_device = "_ucm0004.hw:Generic_1"
		alsa.name = "ALC245 Analog"
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		api.alsa.card.longname = "HD-Audio Generic at 0xfc5c0000 irq 102"
		api.alsa.card.name = "HD-Audio Generic"
		api.alsa.open.ucm = "true"
		api.alsa.path = "hw:Generic_1"
		api.alsa.pcm.card = "2"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "0"
		device.api = "alsa"
		device.class = "sound"
		device.id = "46"
		device.profile.description = "Speaker + Headphones"
		device.profile.name = "HiFi: hw:Generic_1: sink"
		device.routes = "2"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "Family 17h/19h HD Audio Controller"
		node.name = "alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink"
		node.nick = "ALC245 Analog"
		node.pause-on-idle = "false"
		object.path = "alsa:pcm:2:hw:Generic_1:playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "33"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "51"
		object.serial = "91"
		node.max-latency = "16384/48000"
		api.alsa.period-size = "1024"
		api.alsa.period-num = "32"
		api.alsa.headroom = "0"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "2"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio2"
		device.bus = "pci"
		device.bus_path = "pci-0000:07:00.6"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_07_00.6"
		device.nick = "HD-Audio Generic"
		device.plugged.usec = "7832778"
		device.product.id = "0x15e3"
		device.product.name = "Family 17h/19h HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card2"
		device.vendor.id = "0x1022"
		device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
		device.string = "2"
	Ports:
		[Out] Speaker: Speaker (type: Speaker, priority: 100, availability unknown)
		[Out] Headphones: Headphones (type: Headphones, priority: 200, availability group: Headphone, not available)
	Active Port: [Out] Speaker
	Formats:
		pcm

LemuelDayrit avatar Apr 13 '24 07:04 LemuelDayrit

what is the content of /usr/share/alsa-card-profile/mixer/paths?

Shmerlard avatar Apr 13 '24 10:04 Shmerlard

[nobara@nobara ~]$ tree /usr/share/alsa-card-profile
/usr/share/alsa-card-profile
└── mixer
    ├── paths
    │   ├── analog-input-aux.conf
    │   ├── analog-input.conf
    │   ├── analog-input.conf.common
    │   ├── analog-input-dock-mic.conf
    │   ├── analog-input-fm.conf
    │   ├── analog-input-front-mic.conf
    │   ├── analog-input-headphone-mic.conf
    │   ├── analog-input-headset-mic.conf
    │   ├── analog-input-internal-mic-always.conf
    │   ├── analog-input-internal-mic.conf
    │   ├── analog-input-linein.conf
    │   ├── analog-input-mic.conf
    │   ├── analog-input-mic.conf.common
    │   ├── analog-input-mic-line.conf
    │   ├── analog-input-rear-mic.conf
    │   ├── analog-input-tvtuner.conf
    │   ├── analog-input-video.conf
    │   ├── analog-output-chat.conf
    │   ├── analog-output.conf
    │   ├── analog-output.conf.common
    │   ├── analog-output-headphones-2.conf
    │   ├── analog-output-headphones.conf
    │   ├── analog-output-lineout.conf
    │   ├── analog-output-mono.conf
    │   ├── analog-output-speaker-always.conf
    │   ├── analog-output-speaker.conf
    │   ├── audigy-analog-output.conf
    │   ├── audigy-analog-output-mirror.conf
    │   ├── hdmi-output-0.conf
    │   ├── hdmi-output-10.conf
    │   ├── hdmi-output-1.conf
    │   ├── hdmi-output-2.conf
    │   ├── hdmi-output-3.conf
    │   ├── hdmi-output-4.conf
    │   ├── hdmi-output-5.conf
    │   ├── hdmi-output-6.conf
    │   ├── hdmi-output-7.conf
    │   ├── hdmi-output-8.conf
    │   ├── hdmi-output-9.conf
    │   ├── iec958-stereo-input.conf
    │   ├── iec958-stereo-output.conf
    │   ├── steelseries-arctis-output-chat-common.conf
    │   ├── steelseries-arctis-output-game-common.conf
    │   ├── usb-gaming-headset-input.conf
    │   ├── usb-gaming-headset-output-mono.conf
    │   ├── usb-gaming-headset-output-stereo.conf
    │   └── virtual-surround-7.1.conf
    └── profile-sets
        ├── 9999-custom.conf
        ├── analog-only.conf
        ├── asus-xonar-se.conf
        ├── audigy.conf
        ├── cmedia-high-speed-true-hdaudio.conf
        ├── default.conf
        ├── dell-dock-tb16-usb-audio.conf
        ├── force-speaker-and-int-mic.conf
        ├── force-speaker.conf
        ├── hp-tbt-dock-120w-g2.conf
        ├── hp-tbt-dock-audio-module.conf
        ├── kinect-audio.conf
        ├── maudio-fasttrack-pro.conf
        ├── native-instruments-audio4dj.conf
        ├── native-instruments-audio8dj.conf
        ├── native-instruments-komplete-audio6.conf
        ├── native-instruments-korecontroller.conf
        ├── native-instruments-traktor-audio10.conf
        ├── native-instruments-traktor-audio2.conf
        ├── native-instruments-traktor-audio6.conf
        ├── native-instruments-traktorkontrol-s4.conf
        ├── sb-omni-surround-5.1.conf
        ├── sennheiser-gsx.conf
        ├── simple-headphones-mic.conf
        ├── steelseries-arctis-common-usb-audio.conf
        ├── texas-instruments-pcm2902.conf
        └── usb-gaming-headset.conf

4 directories, 74 files

LemuelDayrit avatar Apr 13 '24 12:04 LemuelDayrit

Paste https://raw.githubusercontent.com/luisbocanegra/linux-guide-split-audio-ports/main/reference-config/analog-output-speaker-split.conf into /etc/alsa-card-profile/mixer/paths/analog-output-speaker.conf

and the common file: sudo cp /usr/share/alsa-card-profile/mixer/paths/analog-output.conf.common /etc/alsa-card-profile/mixer/paths/analog-output.conf.common

Restart pipewire systemctl restart --user pipewire pipewire-pulse pipewire.socket wireplumber

Check if both ports are available, like this:

image

If that didn't work try adding this file ~/.config/wireplumber/wireplumber.conf.d/test.conf:

with these contents

monitor.alsa.rules = [
    {
        matches = [
            {
                # HD-Audio Generic
                device.product.id = "0x15e3"
                device.vendor.id = "0x1022"
            }
        ]
        actions = {
            update-props = {
                api.alsa.use-acp = true
                device.profile-set = "/usr/share/alsa-card-profile/mixer/profile-sets/default.conf"
            }
        }
    }
]

And restart pipewire again

luisbocanegra avatar Apr 13 '24 16:04 luisbocanegra