
alsa-project/alsa-utils issue #299 was edited from CaptainMorgan12:
I should note my microphone is not working, haven't gotten it to be recognized using t2mac kernel fixes.
Similar issue to https://github.com/alsa-project/alsa-utils/issues/280
<pre>journalctl -u systemd-udevd -b -o cat --grep alsa <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:16 The line has no effect any more, dropping.</b></font> <font color="#C01C28"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#C01C28"><b>-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring.</b></font> <font color="#D7D75F"><b>/usr/lib/udev/rules.d/90-</b></font><b>alsa</b><font color="#D7D75F"><b>-restore.rules:20 The line has no effect any more, dropping.</b></font> </pre>
Udev Rules:
<pre>cat /usr/lib/udev/rules.d/90-alsa-restore.rules # do not edit this file, it will be overwritten on update
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST=="/usr/sbin", TEST=="/usr/share/alsa", GOTO="alsa_restore_go" GOTO="alsa_restore_end"
ENV{ALSA_CARD_NUMBER}="$attr{device/number}"
# mark HDA analog card; HDMI/DP card does not have capture devices DRIVERS=="snd_hda_intel", TEST=="device/pcmC$env{ALSA_CARD_NUMBER}D0p", RUN+="/bin/sh -c 'echo ALSA_CARD_HDA_ANALOG=$env{ALSA_CARD_NUMBER} >> /run/udev/alsa-hda-analog-card'"
# check for ACP hardware TEST=="device/device/acp3x-dmic-capture", GOTO="alsa_hda_analog" TEST=="device/device/acp6x-dmic-capture", GOTO="alsa_hda_analog" TEST=="device/device/acp63-dmic-capture", GOTO="alsa_hda_analog" TEST=="device/device/acp-pdm-dmic", GOTO="alsa_hda_analog" GOTO="alsa_restore_std"
LABEL="alsa_hda_analog" # restore configuration for profile with combined cards (HDA + digital mic) TEST!="/run/udev/alsa-hda-analog-card", GOTO="alsa_restore_std" IMPORT{program}="/usr/bin/cat /run/udev/alsa-hda-analog-card" ENV{ALSA_CARD_HDA_ANALOG}!="", ENV{ALSA_CARD_NUMBER}="$env{ALSA_CARD_HDA_ANALOG}"
LABEL="alsa_restore_go" TEST!="/etc/alsa/state-daemon.conf", TEST=="/usr/sbin/alsactl", RUN+="/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore $env{ALSA_CARD_NUMBER}" TEST=="/etc/alsa/state-daemon.conf", TEST=="/usr/sbin/alsactl", RUN+="/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime nrestore $env{ALSA_CARD_NUMBER}"
LABEL="alsa_restore_end" </pre>
Tried: ```
@@ -3,6 +3,8 @@
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*",@extratest@ GOTO="alsa_restore_go"
GOTO="alsa_restore_end"
LABEL="alsa_restore_go"
ENV{ALSA_CARD_NUMBER}="$attr{device/number}"
# mark HDA analog card; HDMI/DP card does not have capture devices
@@ -21,7 +23,7 @@ TEST!="/run/udev/alsa-hda-analog-card", GOTO="alsa_restore_std"
IMPORT{program}="/usr/bin/cat /run/udev/alsa-hda-analog-card"
ENV{ALSA_CARD_HDA_ANALOG}!="", ENV{ALSA_CARD_NUMBER}="$env{ALSA_CARD_HDA_ANALOG}"
LABEL="alsa_restore_go"
LABEL="alsa_restore_std"
TEST!="@daemonswitch@", RUN+="@sbindir@/alsactl@args@ restore $env{ALSA_CARD_NUMBER}"
TEST=="@daemonswitch@", RUN+="@sbindir@/alsactl@args@ nrestore $env{ALSA_CARD_NUMBER}" ```
but no cigar
Hardware Config:
<pre>aplay -L | grep CARD hw:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=0 hw:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=2 plughw:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=0 plughw:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=2 sysdefault:<font color="#C01C28"><b>CARD</b></font>=Audio dmix:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=0 dmix:<font color="#C01C28"><b>CARD</b></font>=Audio,DEV=2 usbstream:<font color="#C01C28"><b>CARD</b></font>=Audio hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=3 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=7 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=8 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=9 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=10 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=11 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=3 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=7 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=8 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=9 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=10 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=11 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=0 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=1 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=2 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=3 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=4 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=5 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=3 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=7 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=8 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=9 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=10 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI_1,DEV=11 usbstream:<font color="#C01C28"><b>CARD</b></font>=HDMI_1 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=3 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=7 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=8 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=9 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=10 hw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=11 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=3 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=7 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=8 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=9 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=10 plughw:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=11 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=0 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=1 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=2 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=3 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=4 hdmi:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=5 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=3 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=7 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=8 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=9 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=10 dmix:<font color="#C01C28"><b>CARD</b></font>=HDMI,DEV=11 usbstream:<font color="#C01C28"><b>CARD</b></font>=HDMI hw:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 plughw:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 sysdefault:<font color="#C01C28"><b>CARD</b></font>=DAC front:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround21:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround40:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround41:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround50:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround51:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 surround71:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 iec958:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 dmix:<font color="#C01C28"><b>CARD</b></font>=DAC,DEV=0 usbstream:<font color="#C01C28"><b>CARD</b></font>=DAC usbstream:<font color="#C01C28"><b>CARD</b></font>=Webcam hw:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 hw:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=1 plughw:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 plughw:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=1 sysdefault:<font color="#C01C28"><b>CARD</b></font>=Device front:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround21:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround40:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround41:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround50:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround51:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 surround71:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 iec958:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 iec958:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=1 dmix:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=0 dmix:<font color="#C01C28"><b>CARD</b></font>=Device,DEV=1 usbstream:<font color="#C01C28"><b>CARD</b></font>=Device </pre>
Continued:
<pre>aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Audio [Apple T2 Audio], device 0: Speaker [Speaker] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Audio [Apple T2 Audio], device 2: Codec Output [Codec Output] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 3: HDMI 0 [LG ULTRAGEAR+] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI_1 [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5] Subdevices: 1/1 Subdevice #0: subdevice #0 card 3: DAC [USB Audio DAC], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 5: Device [OWC Thunderbolt 3 Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 5: Device [OWC Thunderbolt 3 Audio Device], device 1: USB Audio [USB Audio #1] Subdevices: 1/1 Subdevice #0: subdevice #0 </pre>
Continued:
<pre>cat /proc/asound/cards 0 [Audio ]: AppleT2x2 - Apple T2 Audio Apple T2 Audio 1 [HDMI_1 ]: HDA-Intel - HDA ATI HDMI HDA ATI HDMI at 0x74624000 irq 230 2 [HDMI ]: HDA-Intel - HDA ATI HDMI HDA ATI HDMI at 0x75920000 irq 231 3 [DAC ]: USB-Audio - USB Audio DAC Burr-Brown from TI USB Audio DAC at usb-0000:21:00.0-4, full speed 4 [Webcam ]: USB-Audio - NexiGo N930E FHD Webcam Nexight Inc NexiGo N930E FHD Webcam at usb-0000:1f:00.0-2, high speed 5 [Device ]: USB-Audio - OWC Thunderbolt 3 Audio Device Other World Computing OWC Thunderbolt 3 Audio Device at usb-0000:1f:00.0-4, ful </pre>
Output sound settings work here:

Alsa Config:
<pre>cat alsa.conf # # ALSA library configuration file #
# pre-load the configuration files
@hooks [ { func load files [ "/var/lib/alsa/conf.d" "/usr/etc/alsa/conf.d" "/etc/alsa/conf.d" "/etc/asound.conf|||/usr/etc/asound.conf" "~/.asoundrc" { @func concat strings [ { @func getenv vars [ XDG_CONFIG_HOME ] default "~/.config" } "/alsa/asoundrc" ] } ] errors false } ]
# load card-specific configuration files (on request)
cards.@hooks [ { func load files [ { @func concat strings [ { @func datadir } "/cards/aliases.conf" ] } ] } { func load_for_all_cards files [ { @func concat strings [ { @func datadir } "/cards/" { @func private_string } ".conf" ] } { root { @func private_integer } file { @func concat strings [ "/var/lib/alsa/card" { @func private_integer } ".conf.d" ] } } ] table { id { @func concat strings [ { @func private_integer } ] } value { @func concat strings [ "cards." { @func private_string } ] } } errors false } ]
# # defaults #
# show all name hints also for definitions without hint {} section defaults.namehint.showall on # show just basic name hints defaults.namehint.basic on # show extended name hints defaults.namehint.extended on # defaults.ctl.card 0 defaults.pcm.card 0 defaults.pcm.device 0 defaults.pcm.subdevice -1 defaults.pcm.nonblock 1 defaults.pcm.compat 0 defaults.pcm.minperiodtime 5000 # in us defaults.pcm.ipc_key 5678293 defaults.pcm.ipc_gid audio defaults.pcm.ipc_perm 0660 defaults.pcm.tstamp_type default defaults.pcm.dmix.max_periods 0 defaults.pcm.dmix.channels 2 defaults.pcm.dmix.rate 48000 defaults.pcm.dmix.format unchanged defaults.pcm.dmix.card defaults.pcm.card defaults.pcm.dmix.device defaults.pcm.device defaults.pcm.dsnoop.card defaults.pcm.card defaults.pcm.dsnoop.device defaults.pcm.device defaults.pcm.front.card defaults.pcm.card defaults.pcm.front.device defaults.pcm.device defaults.pcm.rear.card defaults.pcm.card defaults.pcm.rear.device defaults.pcm.device defaults.pcm.center_lfe.card defaults.pcm.card defaults.pcm.center_lfe.device defaults.pcm.device defaults.pcm.side.card defaults.pcm.card defaults.pcm.side.device defaults.pcm.device defaults.pcm.surround21.card defaults.pcm.card defaults.pcm.surround21.device defaults.pcm.device defaults.pcm.surround40.card defaults.pcm.card defaults.pcm.surround40.device defaults.pcm.device defaults.pcm.surround41.card defaults.pcm.card defaults.pcm.surround41.device defaults.pcm.device defaults.pcm.surround50.card defaults.pcm.card defaults.pcm.surround50.device defaults.pcm.device defaults.pcm.surround51.card defaults.pcm.card defaults.pcm.surround51.device defaults.pcm.device defaults.pcm.surround71.card defaults.pcm.card defaults.pcm.surround71.device defaults.pcm.device defaults.pcm.iec958.card defaults.pcm.card defaults.pcm.iec958.device defaults.pcm.device defaults.pcm.modem.card defaults.pcm.card defaults.pcm.modem.device defaults.pcm.device defaults.pcm.file_format raw defaults.pcm.file_truncate true # truncate files via file or tee PCM defaults.rawmidi.card 0 defaults.rawmidi.device 0 defaults.rawmidi.subdevice -1 defaults.hwdep.card 0 defaults.hwdep.device 0 defaults.timer.class 2 defaults.timer.sclass 0 defaults.timer.card 0 defaults.timer.device 0 defaults.timer.subdevice 0
# # PCM interface #
pcm.hw { @args [ CARD DEV SUBDEV ] @args.CARD { type string default { @func getenv vars [ ALSA_PCM_CARD ALSA_CARD ] default { @func refer name defaults.pcm.card } } } @args.DEV { type integer default { @func igetenv vars [ ALSA_PCM_DEVICE ] default { @func refer name defaults.pcm.device } } } @args.SUBDEV { type integer default { @func refer name defaults.pcm.subdevice } } type hw card $CARD device $DEV subdevice $SUBDEV hint { show { @func refer name defaults.namehint.extended } description "Direct hardware device without any conversions" } }
pcm.plughw { @args [ CARD DEV SUBDEV ] @args.CARD { type string default { @func getenv vars [ ALSA_PCM_CARD ALSA_CARD ] default { @func refer name defaults.pcm.card } } } @args.DEV { type integer default { @func igetenv vars [ ALSA_PCM_DEVICE ] default { @func refer name defaults.pcm.device } } } @args.SUBDEV { type integer default { @func refer name defaults.pcm.subdevice } } type plug slave.pcm { type hw card $CARD device $DEV subdevice $SUBDEV } hint { show { @func refer name defaults.namehint.extended } description "Hardware device with all software conversions" } }
pcm.plug { @args [ SLAVE ] @args.SLAVE { type string } type plug slave.pcm $SLAVE }
pcm.shm { @args [ SOCKET PCM ] @args.SOCKET { type string } @args.PCM { type string } type shm server $SOCKET pcm $PCM }
pcm.tee { @args [ SLAVE FILE FORMAT ] @args.SLAVE { type string } @args.FILE { type string } @args.FORMAT { type string default { @func refer name defaults.pcm.file_format } } type file slave.pcm $SLAVE file $FILE format $FORMAT truncate { @func refer name defaults.pcm.file_truncate } }
pcm.file { @args [ FILE FORMAT ] @args.FILE { type string } @args.FORMAT { type string default { @func refer name defaults.pcm.file_format } } type file slave.pcm null file $FILE format $FORMAT truncate { @func refer name defaults.pcm.file_truncate } }
pcm.null { type null hint { show { @func refer name defaults.namehint.basic } description "Discard all samples (playback) or generate zero samples (capture)" } }
# redirect to load-on-demand extended pcm definitions pcm.cards cards.pcm
pcm.default cards.pcm.default pcm.sysdefault cards.pcm.default pcm.front cards.pcm.front pcm.rear cards.pcm.rear pcm.center_lfe cards.pcm.center_lfe pcm.side cards.pcm.side pcm.surround21 cards.pcm.surround21 pcm.surround40 cards.pcm.surround40 pcm.surround41 cards.pcm.surround41 pcm.surround50 cards.pcm.surround50 pcm.surround51 cards.pcm.surround51 pcm.surround71 cards.pcm.surround71 pcm.iec958 cards.pcm.iec958 pcm.spdif iec958 pcm.hdmi cards.pcm.hdmi pcm.dmix cards.pcm.dmix pcm.dsnoop cards.pcm.dsnoop pcm.modem cards.pcm.modem pcm.phoneline cards.pcm.phoneline
# # Control interface # ctl.default cards.ctl.default ctl.sysdefault cards.ctl.default
ctl.hw { @args [ CARD ] @args.CARD { type string default { @func getenv vars [ ALSA_CTL_CARD ALSA_CARD ] default { @func refer name defaults.ctl.card } } } type hw card $CARD hint.description "Direct control device" }
ctl.shm { @args [ SOCKET CTL ] @args.SOCKET { type string } @args.CTL { type string } type shm server $SOCKET ctl $CTL }
# # RawMidi interface #
rawmidi.default { type hw card { @func getenv vars [ ALSA_RAWMIDI_CARD ALSA_CARD ] default { @func refer name defaults.rawmidi.card } } device { @func igetenv vars [ ALSA_RAWMIDI_DEVICE ] default { @func refer name defaults.rawmidi.device } } hint.description "Default raw MIDI device" }
rawmidi.hw { @args [ CARD DEV SUBDEV ] @args.CARD { type string default { @func getenv vars [ ALSA_RAWMIDI_CARD ALSA_CARD ] default { @func refer name defaults.rawmidi.card } } } @args.DEV { type integer default { @func igetenv vars [ ALSA_RAWMIDI_DEVICE ] default { @func refer name defaults.rawmidi.device } } } @args.SUBDEV { type integer default -1 } type hw card $CARD device $DEV subdevice $SUBDEV hint { description "Direct rawmidi driver device" device $DEV } }
rawmidi.virtual { @args [ MERGE ] @args.MERGE { type string default 1 } type virtual merge $MERGE }
# # Sequencer interface #
seq.default { type hw hint.description "Default sequencer device" }
seq.hw { type hw }
# # HwDep interface #
hwdep.default { type hw card { @func getenv vars [ ALSA_HWDEP_CARD ALSA_CARD ] default { @func refer name defaults.hwdep.card } } device { @func igetenv vars [ ALSA_HWDEP_DEVICE ] default { @func refer name defaults.hwdep.device } } hint.description "Default hardware dependent device" }
hwdep.hw { @args [ CARD DEV ] @args.CARD { type string default { @func getenv vars [ ALSA_HWDEP_CARD ALSA_CARD ] default { @func refer name defaults.hwdep.card } } } @args.DEV { type integer default { @func igetenv vars [ ALSA_HWDEP_DEVICE ] default { @func refer name defaults.hwdep.device } } } type hw card $CARD device $DEV hint { description "Direct hardware dependent device" device $DEV } }
# # Timer interface #
timer_query.default { type hw }
timer_query.hw { type hw }
timer.default { type hw class { @func refer name defaults.timer.class } sclass { @func refer name defaults.timer.sclass } card { @func refer name defaults.timer.card } device { @func refer name defaults.timer.device } subdevice { @func refer name defaults.timer.subdevice } hint.description "Default timer device" }
timer.hw { @args [ CLASS SCLASS CARD DEV SUBDEV ] @args.CLASS { type integer default { @func refer name defaults.timer.class } } @args.SCLASS { type integer default { @func refer name defaults.timer.sclass } } @args.CARD { type string default { @func refer name defaults.timer.card } } @args.DEV { type integer default { @func refer name defaults.timer.device } } @args.SUBDEV { type integer default { @func refer name defaults.timer.subdevice } } type hw class $CLASS sclass $SCLASS card $CARD device $DEV subdevice $SUBDEV hint { description "Direct timer device" device $DEV } } </pre>
Issue URL : https://github.com/alsa-project/alsa-utils/issues/299 Repository URL: https://github.com/alsa-project/alsa-utils