Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package alsa-ucm-conf for openSUSE:Factory checked in at 2026-01-12 10:15:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa-ucm-conf (Old) and /work/SRC/openSUSE:Factory/.alsa-ucm-conf.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa-ucm-conf" Mon Jan 12 10:15:57 2026 rev:37 rq:1326292 version:1.2.15.2 Changes: -------- --- /work/SRC/openSUSE:Factory/alsa-ucm-conf/alsa-ucm-conf.changes 2026-01-03 17:26:18.865020545 +0100 +++ /work/SRC/openSUSE:Factory/.alsa-ucm-conf.new.1928/alsa-ucm-conf.changes 2026-01-12 10:23:23.782601088 +0100 @@ -1,0 +2,9 @@ +Fri Jan 9 08:39:12 UTC 2026 - Takashi Iwai <[email protected]> + +- Update to alsa-ucm-conf 1.2.15.2: + * fix common config + * USB-Audio: updates, Scarlett 18i20, Steinberg UR22C fixes + * ucm2: HDA: headphone handling fixes + * ucm2: sof-soundwire: cirrus codec fixes + +------------------------------------------------------------------- Old: ---- alsa-ucm-conf-1.2.15.1.tar.bz2 alsa-ucm-conf-1.2.15.1.tar.bz2.sig New: ---- alsa-ucm-conf-1.2.15.2.tar.bz2 alsa-ucm-conf-1.2.15.2.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa-ucm-conf.spec ++++++ --- /var/tmp/diff_new_pack.r8b9OD/_old 2026-01-12 10:23:24.330623574 +0100 +++ /var/tmp/diff_new_pack.r8b9OD/_new 2026-01-12 10:23:24.334623738 +0100 @@ -17,7 +17,7 @@ Name: alsa-ucm-conf -Version: 1.2.15.1 +Version: 1.2.15.2 Release: 0 Summary: ALSA UCM Profiles License: BSD-3-Clause ++++++ alsa-ucm-conf-1.2.15.1.tar.bz2 -> alsa-ucm-conf-1.2.15.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/HDA/HiFi-analog.conf new/alsa-ucm-conf-1.2.15.2/ucm2/HDA/HiFi-analog.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/HDA/HiFi-analog.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/HDA/HiFi-analog.conf 2026-01-08 15:28:01.000000000 +0100 @@ -42,6 +42,14 @@ } } +If.hpvol { + Condition { + Type ControlExists + Control "name='Headphone Playback Volume'" + } + False.Define.hpvol "" +} + If.hplo { Condition { Type ControlExists @@ -53,32 +61,38 @@ } } -SectionDevice."Headphones" { - Comment "Headphones" +If.hp { + Condition { + Type String + Empty "${var:hpvol}" + } + False.SectionDevice."Headphones" { + Comment "Headphones" - If.headphone_switch { - Condition { - Type ControlExists - Control "name='Headphone Playback Switch'" - } - True { - EnableSequence [ - cset "name='Headphone Playback Switch' on" - ] - DisableSequence [ - cset "name='Headphone Playback Switch' off" - ] + If.headphone_switch { + Condition { + Type ControlExists + Control "name='Headphone Playback Switch'" + } + True { + EnableSequence [ + cset "name='Headphone Playback Switch' on" + ] + DisableSequence [ + cset "name='Headphone Playback Switch' off" + ] + } } - } - Value { - PlaybackPriority 200 - PlaybackPCM "hw:${CardId}" - PlaybackMixerElem "${var:hpvol}" - PlaybackMasterElem "Master" - PlaybackVolume "${var:hpvol} Playback Volume" - PlaybackSwitch "Headphone Playback Switch" - JackControl "${var:hpjack}" + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId}" + PlaybackMixerElem "${var:hpvol}" + PlaybackMasterElem "Master" + PlaybackVolume "${var:hpvol} Playback Volume" + PlaybackSwitch "Headphone Playback Switch" + JackControl "${var:hpjack}" + } } } @@ -128,7 +142,13 @@ } } -Include.hifi-mic.File "/HDA/HiFi-mic.conf" +If.cap-sw { + Condition { + Type ControlExists + Control "name='Capture Switch'" + } + True.Include.hifi-mic.File "/HDA/HiFi-mic.conf" +} If.line { Condition { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/AllenAndHeath/Zedi10.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/AllenAndHeath/Zedi10.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/AllenAndHeath/Zedi10.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/AllenAndHeath/Zedi10.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/AllenAndHeath/Zedi10-Hifi.conf" } -Define.DirectCardName "Zedi10" -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" CardName="Zedi10" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Arturia/Minifuse-12.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Arturia/Minifuse-12.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Arturia/Minifuse-12.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Arturia/Minifuse-12.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Arturia/Minifuse-12-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Arturia/Minifuse-4.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Arturia/Minifuse-4.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Arturia/Minifuse-4.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Arturia/Minifuse-4.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Arturia/Minifuse-4-HiFi.conf" } -Define.DirectPlaybackChannels 6 -Define.DirectCaptureChannels 6 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=6 CaptureChannels=6 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD14-0008.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD14-0008.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD14-0008.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD14-0008.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Audient/Audient-iD14-HiFi-0008.conf" } -Define.DirectPlaybackChannels 6 -Define.DirectCaptureChannels 12 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=6 CaptureChannels=12 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD4-0003.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD4-0003.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD4-0003.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD4-0003.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Audient/Audient-iD4-HiFi-0003.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD4-0009.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD4-0009.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Audient/Audient-iD4-0009.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Audient/Audient-iD4-0009.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Audient/Audient-iD4-HiFi-0009.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Beacn/Beacn-Mic.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Beacn/Beacn-Mic.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Beacn/Beacn-Mic.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Beacn/Beacn-Mic.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Beacn/Beacn-Mic-HiFi.conf" } -Define.DirectPlaybackChannels 3 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=3 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/Flow8-Recording.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/Flow8-Recording.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/Flow8-Recording.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/Flow8-Recording.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/Behringer/Flow8-Recording-Hifi.conf" } -Define.DirectCardName "Flow8 Recording" -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 10 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" CardName="Flow8 Recording" PlaybackChannels=4 CaptureChannels=10 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/Flow8-Streaming.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/Flow8-Streaming.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/Flow8-Streaming.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/Flow8-Streaming.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/Behringer/Flow8-Streaming-Hifi.conf" } -Define.DirectCardName "Flow8 Streaming" -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" CardName="Flow8 Streaming" PlaybackChannels=4 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC202HD.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC202HD.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC202HD.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC202HD.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Behringer/UMC202HD-HiFi.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC204HD.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC204HD.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC204HD.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC204HD.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Behringer/UMC204HD-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC404HD.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC404HD.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Behringer/UMC404HD.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Behringer/UMC404HD.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Behringer/UMC404HD-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf 2026-01-08 15:28:01.000000000 +0100 @@ -9,7 +9,7 @@ Direction Playback Format S24_3LE Channels 2 - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" HWChannelPos0 FL HWChannelPos1 FR HWChannelPos2 FL @@ -38,7 +38,7 @@ Direction Capture Format S24_3LE Channels 1 - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" HWChannelPos0 MONO HWChannelPos1 MONO HWChannelPos2 MONO @@ -67,7 +67,7 @@ Direction Capture Format S24_3LE Channels 2 - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" HWChannelPos0 FL HWChannelPos1 FR HWChannelPos2 FL @@ -96,7 +96,7 @@ Direction Playback Format S24_3LE Channels 8 - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" HWChannelPos0 UNKNOWN HWChannelPos1 UNKNOWN HWChannelPos2 UNKNOWN @@ -125,7 +125,7 @@ Direction Capture Format S24_3LE Channels 8 - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" HWChannelPos0 UNKNOWN HWChannelPos1 UNKNOWN HWChannelPos2 UNKNOWN @@ -163,7 +163,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 6 Channel1 7 @@ -182,7 +182,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 8 Channel1 9 @@ -201,7 +201,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 0 Channel1 1 @@ -220,7 +220,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 2 Channel1 3 @@ -239,7 +239,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 4 Channel1 5 @@ -262,7 +262,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 6 Channel1 7 @@ -281,7 +281,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 8 Channel1 9 @@ -302,7 +302,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 0 ChannelPos0 MONO @@ -319,7 +319,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 1 ChannelPos0 MONO @@ -336,7 +336,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 2 ChannelPos0 MONO @@ -353,7 +353,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 3 ChannelPos0 MONO @@ -370,7 +370,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 4 ChannelPos0 MONO @@ -387,7 +387,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 5 ChannelPos0 MONO @@ -404,7 +404,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 6 ChannelPos0 MONO @@ -421,7 +421,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 7 ChannelPos0 MONO @@ -440,7 +440,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_stereo_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 2 Channel0 10 Channel1 11 @@ -461,7 +461,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_adat_out" Direction Playback - HWChannels 20 + HWChannels "${var:DirectPlaybackChannels}" Channels 8 Channel0 12 Channel1 13 @@ -494,7 +494,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 10 ChannelPos0 MONO @@ -511,7 +511,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_mono_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 11 ChannelPos0 MONO @@ -530,7 +530,7 @@ Macro.pcm_split.SplitPCMDevice { Name "18i20_adat_in" Direction Capture - HWChannels 20 + HWChannels "${var:DirectCaptureChannels}" Channels 8 Channel0 12 Channel1 13 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf 2026-01-08 15:28:01.000000000 +0100 @@ -1,4 +1,4 @@ -# The 18i20 provides 20 playback and capture channels each: +# Channel mapping # # +----+---------------+-----------------+ # | Ch | Inputs | Outputs | @@ -56,6 +56,19 @@ # Define.Generation "1st" +Define.DirectPlaybackChannels 20 +Define.DirectCaptureChannels 20 # fallback; overridden per generation + +If.gen1 { + Condition { + Type RegexMatch + String "${CardComponents}" + Regex "USB1235:800c" + } + True.Define { + DirectCaptureChannels 18 + } +} If.gen2 { Condition { @@ -63,7 +76,10 @@ String "${CardComponents}" Regex "USB1235:8201" } - True.Define.Generation "2nd" + True.Define { + Generation "2nd" + DirectCaptureChannels 18 + } } If.gen3 { @@ -72,7 +88,10 @@ String "${CardComponents}" Regex "USB1235:8215" } - True.Define.Generation "3rd" + True.Define { + Generation "3rd" + DirectCaptureChannels 20 + } } If.gen4 { @@ -81,7 +100,32 @@ String "${CardComponents}" Regex "USB1235:821d" } - True.Define.Generation "4th" + True { + Define { + Generation "4th" + DirectPlaybackChannels 26 + DirectCaptureChannels 26 + bcdDevice "${sys-card:device/../bcdDevice}" + } + If.fwp { + # bcdNumbers 0900-097a + Condition { + Type RegexMatch + String "${var:bcdDevice}" + Regex "(09[0-6].|097[0-9a])" + } + True.Define.DirectPlaybackChannels 24 + } + If.fwc { + # bcdNumbers 0000-08ff, 0900-097a + Condition { + Type RegexMatch + String "${var:bcdDevice}" + Regex "(0[0-8]..|09[0-6].|097[0-9a])" + } + True.Define.DirectCaptureChannels 20 + } + } } Comment "Focusrite Scarlett 18i20 ${var:Generation} Gen" @@ -91,7 +135,29 @@ File "/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf" } -Define.DirectPlaybackChannels 20 -Define.DirectCaptureChannels 20 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { + Id="Direct 48kHz" + PlaybackChannels="${var:DirectPlaybackChannels}" + PlaybackRate=48000 + CaptureChannels="${var:DirectCaptureChannels}" + CaptureRate=48000 +} +# +# Uncomment when tested! +# +#Macro.1.DirectUseCase { +# Id="Direct 96kHz" +# PlaybackChannels=16 +# PlaybackRate=96000 +# CaptureChannels=16 +# CaptureRate=96000 +#} +#Macro.2.DirectUseCase { +# Id="Direct 192kHz" +# PlaybackChannels=10 +# PlaybackRate=192000 +# CaptureChannels=10 +# CaptureRate=192000 +#} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-2i.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-2i.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Focusrite/Scarlett-2i.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Focusrite/Scarlett-2i.conf 2026-01-08 15:28:01.000000000 +0100 @@ -91,12 +91,6 @@ File "/USB-Audio/Focusrite/${var:Profile}.conf" } -If.dhw { - Condition { Type AlwaysTrue } - True.Define { - DirectPlaybackChannels "${var:PlaybackChannels}" - DirectCaptureChannels "${var:CaptureChannels}" - } -} +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels="${var:PlaybackChannels}" CaptureChannels="${var:CaptureChannels}" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/GoXLR/GoXLR.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/GoXLR/GoXLR.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/GoXLR/GoXLR.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/GoXLR/GoXLR.conf 2026-01-08 15:28:01.000000000 +0100 @@ -35,12 +35,6 @@ File "/USB-Audio/GoXLR/GoXLR-HiFi.conf" } -If.direct { - Condition { Type AlwaysTrue } - True { - Define.DirectPlaybackChannels "${var:PlaybackChannels}" - Define.DirectCaptureChannels "${var:CaptureChannels}" - } -} +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels="${var:PlaybackChannels}" CaptureChannels="${var:CaptureChannels}" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/D828.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/D828.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/D828.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/D828.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/MOTU/D828-HiFi.conf" } -Define.DirectPlaybackChannels 32 #32 channels via physical outputs -Define.DirectCaptureChannels 30 #28 channels via physical inputs + 2 internal loopback inputs +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=32 CaptureChannels=30 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M2.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M2.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M2.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M2.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/MOTU/M2-HiFi.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 2 - -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M4.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M4.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M4.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M4.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/MOTU/M4-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 - -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M6.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M6.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/M6.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/M6.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/MOTU/M6-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 6 - -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=6 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,8 +5,6 @@ File "/USB-Audio/MOTU/UltraLite-mk5-HiFi.conf" } -Define.DirectPlaybackChannels 22 -Define.DirectCaptureChannels 20 - -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=22 CaptureChannels=20 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/NativeInstruments/Traktor-Kontrol-Z1.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/NativeInstruments/Traktor-Kontrol-Z1.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/NativeInstruments/Traktor-Kontrol-Z1.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/NativeInstruments/Traktor-Kontrol-Z1.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/NativeInstruments/Traktor-Kontrol-Z1-Mixer.conf" } -Define.DirectPlaybackChannels 2 - -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Presonus/Revelator-IO-44.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Presonus/Revelator-IO-44.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Presonus/Revelator-IO-44.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Presonus/Revelator-IO-44.conf 2026-01-08 15:28:01.000000000 +0100 @@ -6,7 +6,6 @@ File "/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf" } -Define.DirectPlaybackChannels 6 -Define.DirectCaptureChannels 8 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=6 CaptureChannels=8 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/RME/Fireface-UCX-II.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/RME/Fireface-UCX-II.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/RME/Fireface-UCX-II.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/RME/Fireface-UCX-II.conf 2026-01-08 15:28:01.000000000 +0100 @@ -33,7 +33,6 @@ File "/USB-Audio/RME/Fireface-UCX-II-HiFi.conf" } -Define.DirectPlaybackChannels 20 -Define.DirectCaptureChannels 20 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=20 CaptureChannels=20 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/RME/Fireface-UCX.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/RME/Fireface-UCX.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/RME/Fireface-UCX.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/RME/Fireface-UCX.conf 2026-01-08 15:28:01.000000000 +0100 @@ -29,7 +29,6 @@ File "/USB-Audio/RME/Fireface-UCX-HiFi.conf" } -Define.DirectPlaybackChannels 18 -Define.DirectCaptureChannels 18 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=18 CaptureChannels=18 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/SolidStateLabs/SSL2.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/SolidStateLabs/SSL2.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/SolidStateLabs/SSL2.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/SolidStateLabs/SSL2.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/SolidStateLabs/SSL2-HiFi.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 4 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR22C.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR22C.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR22C.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR22C.conf 2026-01-08 15:28:01.000000000 +0100 @@ -7,7 +7,7 @@ Condition { Type RegexMatch String "${sys-card:device/../bcdDevice}" - Match "0[12]??" + Match "0[12].." } True.Define.DirectCaptureChannels 2 } @@ -17,4 +17,6 @@ File "/USB-Audio/Steinberg/UR22C-HiFi.conf" } -Include.dhw.File "/common/direct.conf" +Include.dhw.File "/common/directm.conf" + +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels="${var:DirectPlaybackChannels}" CaptureChannels="${var:DirectCaptureChannels}" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR22mkII.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR22mkII.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR22mkII.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR22mkII.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Steinberg/UR22mkII-HiFi.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR24C.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR24C.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR24C.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR24C.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Steinberg/UR24C-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR44.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR44.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/Steinberg/UR44.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/Steinberg/UR44.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/Steinberg/UR44-HiFi.conf" } -Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 6 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=6 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/TASCAM/Model12.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/TASCAM/Model12.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/TASCAM/Model12.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/TASCAM/Model12.conf 2026-01-08 15:28:01.000000000 +0100 @@ -5,7 +5,6 @@ File "/USB-Audio/TASCAM/Model12-HiFi.conf" } -Define.DirectPlaybackChannels 10 -Define.DirectCaptureChannels 12 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=10 CaptureChannels=12 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/UniversalAudio/Volt2.conf new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/UniversalAudio/Volt2.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/USB-Audio/UniversalAudio/Volt2.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/USB-Audio/UniversalAudio/Volt2.conf 2026-01-08 15:28:01.000000000 +0100 @@ -1,11 +1,10 @@ -Comment "Universal Audio Volt 2" +omment "Universal Audio Volt 2" SectionUseCase."HiFi" { Comment "Default" File "/USB-Audio/UniversalAudio/Volt2-HiFi.conf" } -Define.DirectPlaybackChannels 2 -Define.DirectCaptureChannels 2 +Include.dhw.File "/common/directm.conf" -Include.dhw.File "/common/direct.conf" +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/common/direct-verb.conf new/alsa-ucm-conf-1.2.15.2/ucm2/common/direct-verb.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/common/direct-verb.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/common/direct-verb.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,27 +0,0 @@ -SectionDevice."Direct" { - Comment "Direct ${CardName}" - Value { - If.p { - Condition { - Type String - Empty "${var:-DirectPlaybackChannels}" - } - False { - PlaybackPriority 1000 - PlaybackChannels "${var:DirectPlaybackChannels}" - PlaybackPCM "hw:${CardId}" - } - } - If.c { - Condition { - Type String - Empty "${var:-DirectCaptureChannels}" - } - False { - CapturePriority 1000 - CaptureChannels "${var:DirectCaptureChannels}" - CapturePCM "hw:${CardId}" - } - } - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/common/direct.conf new/alsa-ucm-conf-1.2.15.2/ucm2/common/direct.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/common/direct.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/common/direct.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -If.direct { - Condition { - Type String - Empty "${var:-DirectCardName}" - } - True.Define.DirectCardName "${CardName}" -} - -SectionUseCase."Direct" { - Comment "Direct ${var:DirectCardName}" - File "/common/direct-verb.conf" -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/common/directm.conf new/alsa-ucm-conf-1.2.15.2/ucm2/common/directm.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/common/directm.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/common/directm.conf 2026-01-08 15:28:01.000000000 +0100 @@ -0,0 +1,77 @@ +# +# Define direct use case (no channel split or routing changes) macros +# + +# +# Macro DirectUseCase +# +# Arguments: +# Id - Use Case identifier (e.g. "Direct" or "Direct1") +# [CardName] - optional, default is global CardName +# [Comment] - optional, default is compibed from identifier and CardName +# [PlaybackChannels] - optional, playback channels or/and +# [CaptureChannels] - optional, capture channels +# [PlaybackRate] - optional, in Hz +# [CaptureRate] - optional, in Hz +# + +DefineMacro.DirectUseCase { + If.cardname { + Condition { + Type String + Empty "${var:-__CardName}" + } + True.Define.__CardName "${CardName}" + } + If.comment { + Condition { + Type String + Empty "${var:-__Comment}" + } + True.Define.__Comment "${var:__Id} ${var:__CardName}" + } + SectionUseCase."${var:__Id}" { + Comment "Direct ${var:__CardName}" + Config.SectionDevice."Direct" { + Comment "Direct ${CardName}" + Value { + If.p { + Condition { + Type String + Empty "${var:-__PlaybackChannels}" + } + False { + PlaybackPriority 1000 + PlaybackChannels "${var:__PlaybackChannels}" + PlaybackPCM "hw:${CardId}" + } + } + If.c { + Condition { + Type String + Empty "${var:-__CaptureChannels}" + } + False { + CapturePriority 1000 + CaptureChannels "${var:__CaptureChannels}" + CapturePCM "hw:${CardId}" + } + } + } + If.prate { + Condition { + Type String + Empty "${var:-__PlaybackRate}" + } + False.Value.PlaybackRate "${var:-__PlaybackRate}" + } + If.crate { + Condition { + Type String + Empty "${var:-__CaptureRate}" + } + False.Value.CaptureRate "${var:-__CaptureRate}" + } + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l43-dmic.conf new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l43-dmic.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l43-dmic.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l43-dmic.conf 2026-01-08 15:28:01.000000000 +0100 @@ -13,8 +13,6 @@ ] DisableSequence [ - cset "name='cs42l43 Decimator 3 Switch' 0" - cset "name='cs42l43 Decimator 4 Switch' 0" cset "name='cs42l43 DP1TX1 Input' 'None'" cset "name='cs42l43 DP1TX2 Input' 'None'" ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l43.conf new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l43.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l43.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l43.conf 2026-01-08 15:28:01.000000000 +0100 @@ -33,7 +33,6 @@ ] DisableSequence [ - cset "name='cs42l43 Decimator 1 Switch' 0" cset "name='cs42l43 DP2TX1 Input' 'None'" cset "name='cs42l43 DP2TX2 Input' 'None'" ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l45-dmic.conf new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l45-dmic.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l45-dmic.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l45-dmic.conf 2026-01-08 15:28:01.000000000 +0100 @@ -7,10 +7,6 @@ "Headset" ] - DisableSequence [ - cset "name='cs42l45 FU 113 Channel Switch' 0" - ] - Value { CapturePriority 100 CapturePCM "hw:${CardId},4" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l45.conf new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l45.conf --- old/alsa-ucm-conf-1.2.15.1/ucm2/sof-soundwire/cs42l45.conf 2025-12-19 11:32:00.000000000 +0100 +++ new/alsa-ucm-conf-1.2.15.2/ucm2/sof-soundwire/cs42l45.conf 2026-01-08 15:28:01.000000000 +0100 @@ -15,10 +15,6 @@ SectionDevice."Headset" { Comment "Jack Microphone" - DisableSequence [ - cset "name='cs42l45 FU 36 Channel Switch' 0" - ] - Value { CapturePriority 200 CapturePCM "hw:${CardId},1"
