You are not logged in.

#1 2025-08-28 07:55:50

skull974
Member
Registered: 2025-08-28
Posts: 2

headphones mute on boot after Splitting rear and front jacks

Hi everyone,
I'm running Arch Linux and trying to split my audio outputs so I can use my rear jack (speakers) and front jack (headphones) independently for simultaneous playback of different audio streams. My sound card is a Realtek ALC897 on a desktop.

I'm using my speakers connected to the line-in port, which I've overridden to as a Front Speaker (out) using hdajackretask. This works flawlessly. audio plays through the speakers without issues.

I followed this detailed guide on GitHub: https://github.com/luisbocanegra/linux- … udio-ports  I went through all the steps, including disabling headphone jack detection, applying the ALSA firmware patch with indep_hp=yes and vmaster=no, creating a custom ALSA profile set, and setting up the udev rule to link it to my card.

Card details from pactl list cards:

alsa_card.pci-0000_2f_00.4, Vendor ID: 0x1022, Product ID: 0x1487

Subdevices from aplay -l:

Device 0 (speakers) and device 2 (headphones)

The splitting itself works as intended! I can play different audio streams simultaneously on speakers and headphones. Per-sink volume control is there, and switching in pavucontrol or KDE's audio widget is fine. but PCM volume in alsamixer doesn't seem to affect anything this started right after following guide step 4.2

The Problem: On every boot, the headphones are muted by default. I have to manually open alsamixer -c1, unmute the Headphone control, and adjust the volume. Once I do that, everything is perfect until the next reboot. auto mute is disabled in alsamixer and I've tried saving the state with

sudo alsactl store

after unmuting and setting volumes, but it doesn't persist – headphones are still muted on boot. also the pcm volume not working upon increasing and decreasing. can anyone help?

Goal : I want to be able to make PCM volume work in alsamixer after splitting rear and front jacks to fix distortion (over-amplification, red bars in pcm) on my speakers and ensure my headphones stay unmuted on boot

Last edited by skull974 (2025-08-28 09:46:29)

Offline

#2 2025-08-28 18:10:26

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,146

Re: headphones mute on boot after Splitting rear and front jacks

alsactl store "should™"  normally take effect... what do you get from

systemctl status alsa-restore
sudo alsactl dump-state

it's possible there's an attempt and a fail by wireplumber/pipewire to restore volumes, possibly from an older cache state. Without completely disabling HW volume control by wireplumber (... which could be an option in which case it should leave at least the pcm levels alone:  https://pipewire.pages.freedesktop.org/ … properties - note the api.alsa.soft-mixer config option) try removing ~./local/state/wireplumber (...or at least the default-routes in that directory) and restarting it.

Other than that for more targeted help, can you post the files you created and adjusted as they exist on your system as well as

amixer -c1
pactl list cards
pactl list sinks

so we all have the same picture of what we're dealing with (and use  [code][/code] tags instead of quote for providing outputs)

Another simpler solution would be to just create a  oneshot user service that get's invoked after pipewire has started that runs a script with the relevant amixer commands.

Last edited by V1del (2025-08-28 18:11:16)

Offline

#3 2025-08-28 19:37:10

skull974
Member
Registered: 2025-08-28
Posts: 2

Re: headphones mute on boot after Splitting rear and front jacks

systemctl status alsa-restore output

● alsa-restore.service - Save/Restore Sound Card State
     Loaded: loaded (/usr/lib/systemd/system/alsa-restore.service; static)
     Active: active (exited) since Fri 2025-08-29 00:23:43 IST; 1min 43s ago
 Invocation: d50f53b7ed6b4b87822f52b269b1d875
    Process: 630 ExecStart=/usr/bin/alsactl restore (code=exited, status=99)
   Main PID: 630 (code=exited, status=99)
   Mem peak: 2.2M
        CPU: 8ms

Aug 29 00:23:43 archlinux systemd[1]: Starting Save/Restore Sound Card State...
Aug 29 00:23:43 archlinux alsactl[630]: Found hardware: "HDA-Intel" "Realtek ALC897" "HDA:10ec0897,14629c95,00100500" "0x1462" "0x9c95"
Aug 29 00:23:43 archlinux alsactl[630]: Hardware is initialized using a generic method
Aug 29 00:23:43 archlinux alsactl[630]: /usr/bin/alsactl: set_control:1346: failed to obtain info for control #18 (No such file or directory)
Aug 29 00:23:43 archlinux alsactl[630]: /usr/bin/alsactl: set_control:1346: failed to obtain info for control #19 (No such file or directory)
Aug 29 00:23:43 archlinux systemd[1]: Finished Save/Restore Sound Card State.

sudo alsactl dump-state output

state.HDMI {
        control.1 {
                iface CARD
                name 'HDMI/DP,pcm=3 Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.2 {
                iface MIXER
                name 'IEC958 Playback Con Mask'
                value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.3 {
                iface MIXER
                name 'IEC958 Playback Pro Mask'
                value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.4 {
                iface MIXER
                name 'IEC958 Playback Default'
                value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access 'read write'
                        type IEC958
                        count 1
                }
        }
        control.5 {
                iface MIXER
                name 'IEC958 Playback Switch'
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.6 {
                iface PCM
                device 3
                name ELD
                value ''
                comment {
                        access 'read volatile'
                        type BYTES
                        count 0
                }
        }
        control.7 {
                iface CARD
                name 'HDMI/DP,pcm=7 Jack'
                value true
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.8 {
                iface MIXER
                name 'IEC958 Playback Con Mask'
                index 1
                value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.9 {
                iface MIXER
                name 'IEC958 Playback Pro Mask'
                index 1
                value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.10 {
                iface MIXER
                name 'IEC958 Playback Default'
                index 1
                value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access 'read write'
                        type IEC958
                        count 1
                }
        }
        control.11 {
                iface MIXER
                name 'IEC958 Playback Switch'
                index 1
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.12 {
                iface PCM
                device 7
                name ELD
                value '100007006914000100000000000000000472e10d564732343059204d33090707'
                comment {
                        access 'read volatile'
                        type BYTES
                        count 32
                }
        }
        control.13 {
                iface CARD
                name 'HDMI/DP,pcm=8 Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.14 {
                iface MIXER
                name 'IEC958 Playback Con Mask'
                index 2
                value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.15 {
                iface MIXER
                name 'IEC958 Playback Pro Mask'
                index 2
                value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.16 {
                iface MIXER
                name 'IEC958 Playback Default'
                index 2
                value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access 'read write'
                        type IEC958
                        count 1
                }
        }
        control.17 {
                iface MIXER
                name 'IEC958 Playback Switch'
                index 2
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.18 {
                iface PCM
                device 8
                name ELD
                value ''
                comment {
                        access 'read volatile'
                        type BYTES
                        count 0
                }
        }
        control.19 {
                iface CARD
                name 'HDMI/DP,pcm=9 Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.20 {
                iface MIXER
                name 'IEC958 Playback Con Mask'
                index 3
                value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.21 {
                iface MIXER
                name 'IEC958 Playback Pro Mask'
                index 3
                value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.22 {
                iface MIXER
                name 'IEC958 Playback Default'
                index 3
                value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access 'read write'
                        type IEC958
                        count 1
                }
        }
        control.23 {
                iface MIXER
                name 'IEC958 Playback Switch'
                index 3
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.24 {
                iface PCM
                device 9
                name ELD
                value ''
                comment {
                        access 'read volatile'
                        type BYTES
                        count 0
                }
        }
        control.25 {
                iface CARD
                name 'HDMI/DP,pcm=10 Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.26 {
                iface MIXER
                name 'IEC958 Playback Con Mask'
                index 4
                value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.27 {
                iface MIXER
                name 'IEC958 Playback Pro Mask'
                index 4
                value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access read
                        type IEC958
                        count 1
                }
        }
        control.28 {
                iface MIXER
                name 'IEC958 Playback Default'
                index 4
                value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
                comment {
                        access 'read write'
                        type IEC958
                        count 1
                }
        }
        control.29 {
                iface MIXER
                name 'IEC958 Playback Switch'
                index 4
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.30 {
                iface PCM
                device 10
                name ELD
                value ''
                comment {
                        access 'read volatile'
                        type BYTES
                        count 0
                }
        }
        control.31 {
                iface PCM
                device 3
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                value.2 0
                value.3 0
                value.4 0
                value.5 0
                value.6 0
                value.7 0
                comment {
                        access 'read write volatile'
                        type INTEGER
                        count 8
                        range '0 - 36'
                }
        }
        control.32 {
                iface PCM
                device 7
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                value.2 0
                value.3 0
                value.4 0
                value.5 0
                value.6 0
                value.7 0
                comment {
                        access 'read write volatile'
                        type INTEGER
                        count 8
                        range '0 - 36'
                }
        }
        control.33 {
                iface PCM
                device 8
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                value.2 0
                value.3 0
                value.4 0
                value.5 0
                value.6 0
                value.7 0
                comment {
                        access 'read write volatile'
                        type INTEGER
                        count 8
                        range '0 - 36'
                }
        }
        control.34 {
                iface PCM
                device 9
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                value.2 0
                value.3 0
                value.4 0
                value.5 0
                value.6 0
                value.7 0
                comment {
                        access 'read write volatile'
                        type INTEGER
                        count 8
                        range '0 - 36'
                }
        }
        control.35 {
                iface PCM
                device 10
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                value.2 0
                value.3 0
                value.4 0
                value.5 0
                value.6 0
                value.7 0
                comment {
                        access 'read write volatile'
                        type INTEGER
                        count 8
                        range '0 - 36'
                }
        }
}
state.Generic {
        control.1 {
                iface MIXER
                name 'Line Out Playback Volume'
                value.0 87
                value.1 87
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 87'
                        dbmin -6525
                        dbmax 0
                        dbvalue.0 0
                        dbvalue.1 0
                }
        }
        control.2 {
                iface MIXER
                name 'Line Out Playback Switch'
                value.0 true
                value.1 true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.3 {
                iface MIXER
                name 'Headphone Playback Volume'
                value.0 87
                value.1 87
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 87'
                        dbmin -6525
                        dbmax 0
                        dbvalue.0 0
                        dbvalue.1 0
                }
        }
        control.4 {
                iface MIXER
                name 'Headphone Playback Switch'
                value.0 false
                value.1 false
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.5 {
                iface MIXER
                name 'Speaker Playback Volume'
                value.0 87
                value.1 87
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 87'
                        dbmin -6525
                        dbmax 0
                        dbvalue.0 0
                        dbvalue.1 0
                }
        }
        control.6 {
                iface MIXER
                name 'Speaker Playback Switch'
                value.0 true
                value.1 true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.7 {
                iface MIXER
                name 'Independent HP'
                value Enabled
                comment {
                        access 'read write'
                        type ENUMERATED
                        count 1
                        item.0 Disabled
                        item.1 Enabled
                }
        }
        control.8 {
                iface MIXER
                name 'Loopback Mixing'
                value Disabled
                comment {
                        access 'read write'
                        type ENUMERATED
                        count 1
                        item.0 Disabled
                        item.1 Enabled
                }
        }
        control.9 {
                iface MIXER
                name 'Rear Mic Playback Volume'
                value.0 0
                value.1 0
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 31'
                        dbmin -3450
                        dbmax 1200
                        dbvalue.0 -3450
                        dbvalue.1 -3450
                }
        }
        control.10 {
                iface MIXER
                name 'Rear Mic Playback Switch'
                value.0 false
                value.1 false
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.11 {
                iface MIXER
                name 'Front Mic Playback Volume'
                value.0 0
                value.1 0
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 31'
                        dbmin -3450
                        dbmax 1200
                        dbvalue.0 -3450
                        dbvalue.1 -3450
                }
        }
        control.12 {
                iface MIXER
                name 'Front Mic Playback Switch'
                value.0 false
                value.1 false
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.13 {
                iface MIXER
                name 'Auto-Mute Mode'
                value Disabled
                comment {
                        access 'read write'
                        type ENUMERATED
                        count 1
                        item.0 Disabled
                        item.1 Enabled
                }
        }
        control.14 {
                iface MIXER
                name 'Capture Volume'
                value.0 63
                value.1 63
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 63'
                        dbmin -1725
                        dbmax 3000
                        dbvalue.0 3000
                        dbvalue.1 3000
                }
        }
        control.15 {
                iface MIXER
                name 'Capture Switch'
                value.0 true
                value.1 true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 2
                }
        }
        control.16 {
                iface MIXER
                name 'Rear Mic Boost Volume'
                value.0 0
                value.1 0
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 3'
                        dbmin 0
                        dbmax 3000
                        dbvalue.0 0
                        dbvalue.1 0
                }
        }
        control.17 {
                iface MIXER
                name 'Front Mic Boost Volume'
                value.0 3
                value.1 3
                comment {
                        access 'read write'
                        type INTEGER
                        count 2
                        range '0 - 3'
                        dbmin 0
                        dbmax 3000
                        dbvalue.0 3000
                        dbvalue.1 3000
                }
        }
        control.18 {
                iface MIXER
                name 'Master Playback Volume'
                value 87
                comment {
                        access 'read write'
                        type INTEGER
                        count 1
                        range '0 - 87'
                        dbmin -6525
                        dbmax 0
                        dbvalue.0 0
                }
        }
        control.19 {
                iface MIXER
                name 'Master Playback Switch'
                value true
                comment {
                        access 'read write'
                        type BOOLEAN
                        count 1
                }
        }
        control.20 {
                iface CARD
                name 'Rear Mic Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.21 {
                iface CARD
                name 'Front Mic Jack'
                value true
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.22 {
                iface CARD
                name 'Line Out Jack'
                value false
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.23 {
                iface CARD
                name 'Headphone Phantom Jack'
                value true
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.24 {
                iface CARD
                name 'Front Speaker Phantom Jack'
                value true
                comment {
                        access read
                        type BOOLEAN
                        count 1
                }
        }
        control.25 {
                iface PCM
                name 'Playback Channel Map'
                value.0 3
                value.1 4
                comment {
                        access 'read volatile'
                        type INTEGER
                        count 2
                        range '0 - 36'
                }
        }
        control.26 {
                iface PCM
                name 'Capture Channel Map'
                value.0 0
                value.1 0
                comment {
                        access 'read volatile'
                        type INTEGER
                        count 2
                        range '0 - 36'
                }
        }
        control.27 {
                iface PCM
                device 2
                name 'Playback Channel Map'
                value.0 0
                value.1 0
                comment {
                        access 'read volatile'
                        type INTEGER
                        count 2
                        range '0 - 36'
                }
        }
        control.28 {
                iface MIXER
                name 'PCM Playback Volume'
                value.0 255
                value.1 255
                comment {
                        access 'read write user'
                        type INTEGER
                        count 2
                        range '0 - 255'
                        tlv '0000000100000008ffffec1400000014'
                        dbmin -5100
                        dbmax 0
                        dbvalue.0 0
                        dbvalue.1 0
                }
        }
}

amixer -c1 output

Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 56 [64%] [-23.25dB] [on]
  Front Right: Playback 56 [64%] [-23.25dB] [on]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [on]
  Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 252 [99%] [-0.60dB]
  Front Right: Playback 252 [99%] [-0.60dB]
Simple mixer control 'Front Mic',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'Front Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 3 [100%] [30.00dB]
  Front Right: 3 [100%] [30.00dB]
Simple mixer control 'Line Out',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [on]
  Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'
Simple mixer control 'Loopback Mixing',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Rear Mic',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'Rear Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
[skull@archlinux ~]$ amixer -c1
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 56 [64%] [-23.25dB] [on]
  Front Right: Playback 56 [64%] [-23.25dB] [on]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [on]
  Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 252 [99%] [-0.60dB]
  Front Right: Playback 252 [99%] [-0.60dB]
Simple mixer control 'Front Mic',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'Front Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 3 [100%] [30.00dB]
  Front Right: 3 [100%] [30.00dB]
Simple mixer control 'Line Out',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [on]
  Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'
Simple mixer control 'Loopback Mixing',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Rear Mic',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'Rear Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]

pactl list cards output

Card #50
        Name: alsa_card.pci-0000_2f_00.4
        Driver: alsa
        Owner Module: n/a
        Properties:
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "1"
                api.alsa.card.longname = "HD-Audio Generic at 0xfcb00000 irq 91"
                api.alsa.card.name = "HD-Audio Generic"
                api.alsa.path = "hw:1"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.api = "alsa"
                device.bus = "pci"
                device.bus_path = "pci-0000:2f:00.4"
                device.description = "Starship/Matisse HD Audio Controller"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-pci"
                device.name = "alsa_card.pci-0000_2f_00.4"
                device.nick = "HD-Audio Generic"
                device.plugged.usec = "8739582"
                device.product.id = "0x1487"
                device.product.name = "Starship/Matisse HD Audio Controller"
                device.profile-set = "/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:2f:00.4/sound/card1"
                device.vendor.id = "0x1022"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
                media.class = "Audio/Device"
                spa.object.id = "4"
                factory.id = "15"
                client.id = "46"
                object.id = "50"
                object.serial = "50"
                object.path = "alsa:acp:Generic"
                alsa.card = "1"
                alsa.card_name = "HD-Audio Generic"
                alsa.long_card_name = "HD-Audio Generic at 0xfcb00000 irq 91"
                alsa.driver_name = "snd_hda_intel"
                alsa.mixer_name = "Realtek ALC897"
                alsa.components = "HDA:10ec0897,14629c95,00100500"
                alsa.id = "Generic"
                device.string = "1"
        Profiles:
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
                output:analog-stereo-speaker+input:analog-stereo-input: Speakers Output + Microphone Input (sinks: 1, sources: 1, priority: 5050, available: yes)
                output:analog-stereo-headphones+input:analog-stereo-input: Headphones Output + Microphone Input (sinks: 1, sources: 1, priority: 5050, available: yes)
                output:analog-stereo-speaker: Speakers Output (sinks: 1, sources: 0, priority: 5000, available: yes)
                output:analog-stereo-headphones: Headphones Output (sinks: 1, sources: 0, priority: 5000, available: yes)
                output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input: Analog Stereo Duplex (sinks: 2, sources: 1, priority: 80, available: yes)
                output:analog-stereo-headphones+output:analog-stereo-speaker: Analog Stereo Outputs Only (sinks: 2, sources: 0, priority: 70, available: yes)
                input:analog-stereo-input: Microphone Input (sinks: 0, sources: 1, priority: 50, available: yes)
                pro-audio: Pro Audio (sinks: 2, sources: 1, priority: 1, available: yes)
        Active Profile: output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input
        Ports:
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability group: Legacy 3, availability unknown)
                        Properties:
                                port.type = "headphones"
                                port.availability-group = "Legacy 3"
                                device.icon_name = "audio-headphones"
                                card.profile.port = "0"
                        Part of profile(s): output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input, output:analog-stereo-headphones+output:analog-stereo-speaker, output:analog-stereo-headphones, output:analog-stereo-headphones+input:analog-stereo-input
                analog-output-speaker-split: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "speaker"
                                device.icon_name = "audio-speakers"
                                card.profile.port = "1"
                        Part of profile(s): output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input, output:analog-stereo-headphones+output:analog-stereo-speaker, output:analog-stereo-speaker, output:analog-stereo-speaker+input:analog-stereo-input
                analog-input-front-mic: Front Microphone (type: Mic, priority: 8500, latency offset: 0 usec, availability group: Legacy 1, available)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Legacy 1"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "2"
                        Part of profile(s): output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input, input:analog-stereo-input, output:analog-stereo-speaker+input:analog-stereo-input, output:analog-stereo-headphones+input:analog-stereo-input
                analog-input-rear-mic: Rear Microphone (type: Mic, priority: 8200, latency offset: 0 usec, availability group: Legacy 2, not available)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Legacy 2"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "3"
                        Part of profile(s): output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input, input:analog-stereo-input, output:analog-stereo-speaker+input:analog-stereo-input, output:analog-stereo-headphones+input:analog-stereo-input

Card #51
        Name: alsa_card.pci-0000_2d_00.1
        Driver: alsa
        Owner Module: n/a
        Properties:
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.card.longname = "HDA ATI HDMI at 0xfcd20000 irq 90"
                api.alsa.card.name = "HDA ATI HDMI"
                api.alsa.path = "hw:0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.api = "alsa"
                device.bus = "pci"
                device.bus_path = "pci-0000:2d:00.1"
                device.description = "Navi 21/23 HDMI/DP Audio Controller"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-pci"
                device.name = "alsa_card.pci-0000_2d_00.1"
                device.nick = "HDA ATI HDMI"
                device.plugged.usec = "8717255"
                device.product.id = "0xab28"
                device.product.name = "Navi 21/23 HDMI/DP Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:2b:00.0/0000:2c:00.0/0000:2d:00.1/sound/card0"
                device.vendor.id = "0x1002"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
                media.class = "Audio/Device"
                spa.object.id = "2"
                factory.id = "15"
                client.id = "46"
                object.id = "51"
                object.serial = "51"
                object.path = "alsa:acp:HDMI"
                alsa.card = "0"
                alsa.card_name = "HDA ATI HDMI"
                alsa.long_card_name = "HDA ATI HDMI at 0xfcd20000 irq 90"
                alsa.driver_name = "snd_hda_intel"
                alsa.mixer_name = "ATI R6xx HDMI"
                alsa.components = "HDA:1002aa01,00aa0100,00100800"
                alsa.id = "HDMI"
                device.string = "0"
        Profiles:
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
                output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: no)
                output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: yes)
                output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-stereo-extra4: Digital Stereo (HDMI 5) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
                output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
                output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround-extra4: Digital Surround 5.1 (HDMI 5) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra4: Digital Surround 7.1 (HDMI 5) Output (sinks: 1, sources: 0, priority: 600, available: no)
                pro-audio: Pro Audio (sinks: 5, sources: 0, priority: 1, available: yes)
        Active Profile: output:hdmi-stereo-extra1
        Ports:
                hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 1, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 1"
                                device.icon_name = "video-display"
                                card.profile.port = "0"
                        Part of profile(s): output:hdmi-stereo, output:hdmi-surround, output:hdmi-surround71
                hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 2, available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 2"
                                device.icon_name = "video-display"
                                card.profile.port = "1"
                                device.product.name = "VG240Y M3"
                                iec958.codecs.detected = "[\"PCM\"]"
                        Part of profile(s): output:hdmi-stereo-extra1
                hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 3, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 3"
                                device.icon_name = "video-display"
                                card.profile.port = "2"
                        Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-surround-extra2, output:hdmi-surround71-extra2
                hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 4, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 4"
                                device.icon_name = "video-display"
                                card.profile.port = "3"
                        Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-surround-extra3, output:hdmi-surround71-extra3
                hdmi-output-4: HDMI / DisplayPort 5 (type: HDMI, priority: 5500, latency offset: 0 usec, availability group: Legacy 5, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 5"
                                device.icon_name = "video-display"
                                card.profile.port = "4"
                        Part of profile(s): output:hdmi-stereo-extra4, output:hdmi-surround-extra4, output:hdmi-surround71-extra4

pactl list sinks output

Sink #55
        State: RUNNING
        Name: alsa_output.pci-0000_2f_00.4.analog-stereo-headphones
        Description: Starship/Matisse HD Audio Controller Headphones
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 26214 /  40% / -23.88 dB,   front-right: 26214 /  40% / -23.88 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.pci-0000_2f_00.4.analog-stereo-headphones.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.card = "1"
                alsa.card_name = "HD-Audio Generic"
                alsa.class = "generic"
                alsa.components = "HDA:10ec0897,14629c95,00100500"
                alsa.device = "2"
                alsa.driver_name = "snd_hda_intel"
                alsa.id = "ALC897 Alt Analog"
                alsa.long_card_name = "HD-Audio Generic at 0xfcb00000 irq 91"
                alsa.mixer_name = "Realtek ALC897"
                alsa.name = "ALC897 Alt Analog"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "HD-Audio Generic at 0xfcb00000 irq 91"
                api.alsa.card.name = "HD-Audio Generic"
                api.alsa.path = "hw:1,2"
                api.alsa.pcm.card = "1"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "0"
                device.api = "alsa"
                device.class = "sound"
                device.icon_name = "audio-card-analog"
                device.id = "50"
                device.profile.description = "Headphones"
                device.profile.name = "analog-stereo-headphones"
                device.routes = "1"
                factory.name = "api.alsa.pcm.sink"
                media.class = "Audio/Sink"
                device.description = "Starship/Matisse HD Audio Controller"
                node.name = "alsa_output.pci-0000_2f_00.4.analog-stereo-headphones"
                node.nick = "ALC897 Alt Analog"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:Generic:0:playback"
                port.group = "playback"
                priority.driver = "721"
                priority.session = "721"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "46"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "55"
                object.serial = "55"
                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 = "1"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "pci"
                device.bus_path = "pci-0000:2f:00.4"
                device.enum.api = "udev"
                device.name = "alsa_card.pci-0000_2f_00.4"
                device.nick = "HD-Audio Generic"
                device.plugged.usec = "8739582"
                device.product.id = "0x1487"
                device.product.name = "Starship/Matisse HD Audio Controller"
                device.profile-set = "/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:2f:00.4/sound/card1"
                device.vendor.id = "0x1022"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
                spa.object.id = "4"
                device.string = "1"
        Ports:
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 3, availability unknown)
        Active Port: analog-output-headphones
        Formats:
                pcm

Sink #56
        State: SUSPENDED
        Name: alsa_output.pci-0000_2f_00.4.analog-stereo-speaker
        Description: Starship/Matisse HD Audio Controller Speakers
        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.pci-0000_2f_00.4.analog-stereo-speaker.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.card = "1"
                alsa.card_name = "HD-Audio Generic"
                alsa.class = "generic"
                alsa.components = "HDA:10ec0897,14629c95,00100500"
                alsa.device = "0"
                alsa.driver_name = "snd_hda_intel"
                alsa.id = "ALC897 Analog"
                alsa.long_card_name = "HD-Audio Generic at 0xfcb00000 irq 91"
                alsa.mixer_name = "Realtek ALC897"
                alsa.name = "ALC897 Analog"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "HD-Audio Generic at 0xfcb00000 irq 91"
                api.alsa.card.name = "HD-Audio Generic"
                api.alsa.path = "hw:1,0"
                api.alsa.pcm.card = "1"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "1"
                device.api = "alsa"
                device.class = "sound"
                device.icon_name = "audio-card-analog"
                device.id = "50"
                device.profile.description = "Speakers"
                device.profile.name = "analog-stereo-speaker"
                device.routes = "1"
                factory.name = "api.alsa.pcm.sink"
                media.class = "Audio/Sink"
                device.description = "Starship/Matisse HD Audio Controller"
                node.name = "alsa_output.pci-0000_2f_00.4.analog-stereo-speaker"
                node.nick = "ALC897 Analog"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:Generic:1:playback"
                port.group = "playback"
                priority.driver = "1009"
                priority.session = "1009"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "46"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "56"
                object.serial = "56"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "1"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "pci"
                device.bus_path = "pci-0000:2f:00.4"
                device.enum.api = "udev"
                device.name = "alsa_card.pci-0000_2f_00.4"
                device.nick = "HD-Audio Generic"
                device.plugged.usec = "8739582"
                device.product.id = "0x1487"
                device.product.name = "Starship/Matisse HD Audio Controller"
                device.profile-set = "/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:2f:00.4/sound/card1"
                device.vendor.id = "0x1022"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
                spa.object.id = "4"
                device.string = "1"
        Ports:
                analog-output-speaker-split: Speakers (type: Speaker, priority: 10000, availability unknown)
        Active Port: analog-output-speaker-split
        Formats:
                pcm

Sink #58
        State: SUSPENDED
        Name: alsa_output.pci-0000_2d_00.1.hdmi-stereo-extra1
        Description: Navi 21/23 HDMI/DP Audio Controller Digital Stereo (HDMI 2)
        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.pci-0000_2d_00.1.hdmi-stereo-extra1.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
        Properties:
                alsa.card = "0"
                alsa.card_name = "HDA ATI HDMI"
                alsa.class = "generic"
                alsa.components = "HDA:1002aa01,00aa0100,00100800"
                alsa.device = "7"
                alsa.driver_name = "snd_hda_intel"
                alsa.id = "HDMI 1"
                alsa.long_card_name = "HDA ATI HDMI at 0xfcd20000 irq 90"
                alsa.mixer_name = "ATI R6xx HDMI"
                alsa.name = "VG240Y M3"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "HDA ATI HDMI at 0xfcd20000 irq 90"
                api.alsa.card.name = "HDA ATI HDMI"
                api.alsa.path = "hdmi:0,1"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "8"
                device.api = "alsa"
                device.class = "sound"
                device.icon_name = "audio-card-analog"
                device.id = "51"
                device.profile.description = "Digital Stereo (HDMI 2)"
                device.profile.name = "hdmi-stereo-extra1"
                device.routes = "1"
                factory.name = "api.alsa.pcm.sink"
                iec958.codecs = "[\"PCM\"]"
                media.class = "Audio/Sink"
                device.description = "Navi 21/23 HDMI/DP Audio Controller"
                node.name = "alsa_output.pci-0000_2d_00.1.hdmi-stereo-extra1"
                node.nick = "VG240Y M3"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:HDMI:8:playback"
                port.group = "playback"
                priority.driver = "632"
                priority.session = "632"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "46"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "34"
                object.serial = "58"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "pci"
                device.bus_path = "pci-0000:2d:00.1"
                device.enum.api = "udev"
                device.name = "alsa_card.pci-0000_2d_00.1"
                device.nick = "HDA ATI HDMI"
                device.plugged.usec = "8717255"
                device.product.id = "0xab28"
                device.product.name = "Navi 21/23 HDMI/DP Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:2b:00.0/0000:2c:00.0/0000:2d:00.1/sound/card0"
                device.vendor.id = "0x1002"
                device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
                spa.object.id = "2"
                device.string = "0"
        Ports:
                hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, availability group: Legacy 2, available)
        Active Port: hdmi-output-1
        Formats:
                pcm

Now I'll share the files I created and adjusted to split rear and front jacks, starting with /etc/alsa-card-profile/mixer/analog-output-speaker.conf  where I changed

[Jack Headphone]
state.plugged = no
state.unplugged = unknown

to

[Jack Headphone]
state.plugged = unknown
state.unplugged = unknown

full output of the file /etc/alsa-card-profile/mixer/analog-output-speaker.conf

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

; Path for mixers that have a 'Speaker' control
;
; See analog-output.conf.common for an explanation on the directives

[General]
priority = 100
description-key = analog-output-speaker

[Properties]
device.icon_name = audio-speakers

[Jack Headphone]
state.plugged = unknown
state.unplugged = unknown

[Jack Dock Headphone]
state.plugged = no
state.unplugged = unknown

[Jack Front Headphone]
state.plugged = no
state.unplugged = unknown

[Jack Line Out]
state.plugged = no
state.unplugged = unknown

[Jack Line Out Front]
state.plugged = no
state.unplugged = unknown

[Jack Front Line Out]
state.plugged = no
state.unplugged = unknown

[Jack Rear Line Out]
state.plugged = no
state.unplugged = unknown

[Jack Dock Line Out]
state.plugged = no
state.unplugged = unknown

[Jack Speaker]
required-any = any

[Jack Speaker Phantom]
required-any = any
state.plugged = unknown
state.unplugged = unknown

[Jack Speaker Front Phantom]
required-any = any
state.plugged = unknown
state.unplugged = unknown

[Jack Speaker - Output]
required-any = any

[Element Hardware Master]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element Master]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element Master Mono]
switch = off
volume = off

; Make sure the internal speakers are not auto-muted once the system has speakers
[Element Auto-Mute Mode]
enumeration = select

[Option Auto-Mute Mode:Disabled]
name = analog-output-speaker

; This profile path is intended to control the speaker, let's mute headphones
; else there will be a spike when plugging in headphones
[Element Headphone]
switch = off
volume = off

[Element Headphone,1]
switch = off
volume = off

[Element Headphone2]
switch = off
volume = off

[Element Headphone+LO]
switch = off
volume = off

[Element Speaker+LO]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element Desktop Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

[Element Front]
switch = mute
volume = merge
override-map.1 = all-front
override-map.2 = front-left,front-right

[Element Front Speaker]
switch = mute
volume = merge
override-map.1 = all-front
override-map.2 = front-left,front-right
required-any = any

[Element Speaker Front]
switch = mute
volume = merge
override-map.1 = all-front
override-map.2 = front-left,front-right
required-any = any

[Element Rear]
switch = mute
volume = merge
override-map.1 = all-rear
override-map.2 = rear-left,rear-right

[Element Surround]
switch = mute
volume = merge
override-map.1 = all-rear
override-map.2 = rear-left,rear-right

[Element Surround Speaker]
switch = mute
volume = merge
override-map.1 = all-rear
override-map.2 = rear-left,rear-right
required-any = any

[Element Speaker Surround]
switch = mute
volume = merge
override-map.1 = all-rear
override-map.2 = rear-left,rear-right
required-any = any

[Element Side]
switch = mute
volume = merge
override-map.1 = all-side
override-map.2 = side-left,side-right

[Element Speaker Side]
switch = mute
volume = merge
override-map.1 = all-side
override-map.2 = side-left,side-right

[Element Center]
switch = mute
volume = merge
override-map.1 = all-center
override-map.2 = all-center,all-center

[Element Center Speaker]
switch = mute
volume = merge
override-map.1 = all-center
override-map.2 = all-center,all-center
required-any = any

[Element LFE]
switch = mute
volume = merge
override-map.1 = lfe
override-map.2 = lfe,lfe

[Element LFE Speaker]
switch = mute
volume = merge
override-map.1 = lfe
override-map.2 = lfe,lfe
required-any = any

[Element Bass Speaker]
switch = mute
volume = merge
override-map.1 = lfe
override-map.2 = lfe,lfe
required-any = any

[Element CLFE]
switch = mute
volume = merge
override-map.1 = all-center
override-map.2 = all-center,lfe

[Element Center/LFE]
switch = mute
volume = merge
override-map.1 = all-center
override-map.2 = all-center,lfe

[Element Speaker CLFE]
switch = mute
volume = merge
override-map.1 = all-center
override-map.2 = all-center,lfe

.include analog-output.conf.common

next file which I adjusted  was /lib/firmware/hda-jack-retask.fw

[codec]
0x10ec0897 0x14629c95 0

[pincfg]
0x11 0x4037c040
0x12 0x411111f0
0x14 0x01014010
0x15 0x411111f0
0x16 0x411111f0
0x17 0x411111f0
0x18 0x01a19030
0x19 0x02a19040
0x1a 0x0211313f
0x1b 0x0321413f
0x1c 0x411111f0
0x1d 0x4028c66b
0x1e 0x411111f0
0x1f 0x411111f0

[hints]
indep_hp=yes
vmaster=no

next, I enabled Independent HP in alsamixer, can be seen in output of amixer -c1 ( full output is attached above)

Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'

next,  /etc/alsa-card-profile/mixer/paths/analog-output-speaker-split.conf  (which is basically /etc/alsa-card-profile/mixer/analog-output-speaker.conf but renamed from analog-output-speaker.conf to analog-output-speaker-split.conf as mentioned in the Github guide) so output is same as /etc/alsa-card-profile/mixer/paths/analog-output-speaker-split.conf (attached above)

next, I created /etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf whose output:

; This will let alsa generate automatic profiles (e.g internal speaker + microphone)
[General]
auto-profiles = yes


; device-strings describes the ALSA device string(s) that PulseAudio uses to open the device, where "%f" specifies the card number (should always be present in the string).

; This is the mapping for the internal speaker
; If needed, change the 0 in "hw:%f,0" to your sub device location
; You can change the description for this and other mappings if you want
; in paths output put the name of the previously created custom mixer path
[Mapping analog-stereo-speaker]
description = Speakers
device-strings = hw:%f,0
paths-output = analog-output-speaker-split
channel-map = left,right
direction = output

; This is the mapping for the jack output (headphones)
; If needed, change the 2 in "hw:%f,2" to your sub device location
; in paths output put the name of the from card details
[Mapping analog-stereo-headphones]
description = Headphones
device-strings = hw:%f,2
paths-output = analog-output-headphones
channel-map = left,right
direction = output


; This is the mapping that will handle internal and external microphones, as you could see in `cat /proc/asound/pcm`, the card also had a capture port
; in the 0,0 sub device location so let's add it here too (change the 0 in "hw:%f,0" to your sub device location that has the capture port)
; All the paths-input names here came from the default.conf profile set and you may have to adapt it if your input port name is not included

[Mapping analog-stereo-input]
description = Microphone
device-strings = hw:%f,0
channel-map = left,right
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
direction = input


; Broken in parts the profile name means to join
; The name of the Mapping containing the analog-output-headphones (output:analog-stereo-headphones)
; The name of the Mapping containing the analog-output-speaker (output:analog-stereo-speaker)
; The name of the Mapping containing the analog-stereo-input (input:analog-stereo-input)

; in output-mappings put the name of the output mappings
; input-mappings put the name of the input mappings

; NOTE: Not to be confused width the paths-output/paths-input inside the mapping, we're not using those directly

; This is the profile that will have the internal speakers + jack output + all microphones
; in paths output put the name of the from card details
[Profile output:analog-stereo-headphones+output:analog-stereo-speaker+input:analog-stereo-input]
description = Analog Stereo Duplex
output-mappings = analog-stereo-headphones analog-stereo-speaker
input-mappings = analog-stereo-input
priority = 80

; This profile will have the internal speakers + jack output, but not microphones
[Profile output:analog-stereo-headphones+output:analog-stereo-speaker]
description = Analog Stereo Outputs Only
output-mappings = analog-stereo-headphones analog-stereo-speaker
priority = 70

created the file /etc/udev/rules.d/91-pipewire-alsa-port-split.rules whose output is:

SUBSYSTEM!="sound", GOTO="pipewire_end"
ACTION!="change", GOTO="pipewire_end"
KERNEL!="card*", GOTO="pipewire_end"

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1022", ATTRS{device}=="0x1487", \
ENV{ACP_PROFILE_SET}="/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf"

# Use this instead for immutable distributions
# SUBSYSTEMS=="pci", ATTRS{vendor}=="0x8086", ATTRS{device}=="0xa348", \
# ENV{ACP_PROFILE_SET}="/etc/alsa-card-profile/mixer/profile-sets/split-ports-profile.conf" \
# RUN+="/usr/local/bin/alsa-split-ports.sh"

LABEL="pipewire_end"

note - I have removed ~./local/state/wireplumber and restarted it still issue persist of pcm volume doing nothing upon decrease and increase

Last edited by skull974 (2025-08-28 19:55:53)

Offline

#4 2025-08-29 13:29:17

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,172

Re: headphones mute on boot after Splitting rear and front jacks

Aug 29 00:23:43 archlinux alsactl[630]: /usr/bin/alsactl: set_control:1346: failed to obtain info for control #18 (No such file or directory)
Aug 29 00:23:43 archlinux alsactl[630]: /usr/bin/alsactl: set_control:1346: failed to obtain info for control #19 (No such file or directory)

No idea how relevant that is, stracing alsactl restore it tries to open every /dev/snd/control* imaginable, but I don't get such errors. I could imagine that the restore runts too early and before your alsa-split-ports.sh runs (where you could simply repeat the restore or move it explicitly, disabling the -restore service)?

Alternatively

V1del wrote:

Another simpler solution would be to just create a  oneshot user service that get's invoked after pipewire has started that runs a script with the relevant amixer commands.

Offline

Board footer

Powered by FluxBB