From 133938cae1927baa5cf1b11976cca582e4253202 Mon Sep 17 00:00:00 2001 From: Edward Matijevic Date: Mon, 30 Mar 2026 11:49:47 -0500 Subject: [PATCH] USB-Audio: Add Audient EVO4 This is a 4in/4out device with 1 analog stereo out and 2 analog mono in. The hardware mixed loopback interface takes up the remaining 4 channels. Without this UCM the device is configured as 4.0 surround for in and out. I copied the Windows config except for the stereo mic mix. Modifying hardware volumes/gain other than main output seems to require a driver or external software similar to the one found on github at the repo github.com/vijay-prema/audient-evo-linux-tools Closes: #303 Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/708 Signed-off-by: Edward Matijevic Signed-off-by: Jaroslav Kysela --- ucm2/USB-Audio/Audient/Audient-EVO4-0006.conf | 10 ++ .../Audient/Audient-EVO4-HiFi-0006.conf | 152 ++++++++++++++++++ ucm2/USB-Audio/USB-Audio.conf | 1 + 3 files changed, 163 insertions(+) create mode 100644 ucm2/USB-Audio/Audient/Audient-EVO4-0006.conf create mode 100644 ucm2/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf diff --git a/ucm2/USB-Audio/Audient/Audient-EVO4-0006.conf b/ucm2/USB-Audio/Audient/Audient-EVO4-0006.conf new file mode 100644 index 0000000..e359766 --- /dev/null +++ b/ucm2/USB-Audio/Audient/Audient-EVO4-0006.conf @@ -0,0 +1,10 @@ +Comment "Audient EVO4" + +SectionUseCase."HiFi" { + Comment "Analog Stereo Output + Inputs" + File "/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf" +} + +Include.dhw.File "/common/directm.conf" + +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=4 } diff --git a/ucm2/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf b/ucm2/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf new file mode 100644 index 0000000..296919c --- /dev/null +++ b/ucm2/USB-Audio/Audient/Audient-EVO4-HiFi-0006.conf @@ -0,0 +1,152 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro [ + { + SplitPCM { + Name "evo4_stereo_out" + Direction Playback + Channels 2 + HWChannels 4 + HWChannelPos0 FL # Main Output L + HWChannelPos1 FR # Main Output R + HWChannelPos2 FL # Loopback L + HWChannelPos3 FR # Loopback R + } + } + { + SplitPCM { + Name "evo4_mono_in" + Direction Capture + Channels 1 + HWChannels 4 + HWChannelPos0 MONO # Mic 1 / Line 1 / Instrument + HWChannelPos1 MONO # Mic 2 / Line 2 + HWChannelPos2 MONO # Loopback L + HWChannelPos3 MONO # Loopback R + } + } + { + SplitPCM { + Name "evo4_stereo_in" + Direction Capture + Channels 2 + HWChannels 4 + HWChannelPos0 FL # Mic 1 / Line 1 / Instrument + HWChannelPos1 FR # Mic 2 / Line 2 + HWChannelPos2 FL # Loopback L + HWChannelPos3 FR # Loopback R + } + } +] + +SectionDevice."Headphones" { + Comment "Headphone / Line Out" + Value { + PlaybackPriority 200 + PlaybackVolume "EVO4 " + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line1" { + Comment "Loopback" + Value { + PlaybackPriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line2" { + Comment "Loopback" + Value { + PlaybackPriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_stereo_in" + Direction Capture + HWChannels 4 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line3" { + Comment "Loopback (L)" + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_mono_in" + Direction Capture + HWChannels 4 + Channels 1 + Channel0 2 + ChannelPos0 MONO + } +} + +SectionDevice."Line4" { + Comment "Loopback (R)" + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_mono_in" + Direction Capture + HWChannels 4 + Channels 1 + Channel0 3 + ChannelPos0 MONO + } +} + +SectionDevice."Mic1" { + Comment "Mic 1 / Line 1 / Instrument" + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_mono_in" + Direction Capture + HWChannels 4 + Channels 1 + Channel0 0 + ChannelPos0 MONO + } +} + +SectionDevice."Mic2" { + Comment "Mic 2 / Line 2" + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "evo4_mono_in" + Direction Capture + HWChannels 4 + Channels 1 + Channel0 1 + ChannelPos0 MONO + } +} diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf index cdb1017..ed5cce1 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -250,6 +250,7 @@ Macro.minifuse4.StringMatch "Id='1c75:af70' Profile='Arturia/Minifuse-4'" Macro.minifuse12.RegexMatch "Id='1c75:af[89]0' Profile='Arturia/Minifuse-12'" Macro.revelator.StringMatch "Id='194f:0424' Profile='Presonus/Revelator-IO-44'" Macro.zedi10.StringMatch "Id='22f0:0016' Profile='AllenAndHeath/Zedi10'" +Macro.evo4-0006.StringMatch "Id='2708:0006' Profile='Audient/Audient-EVO4-0006'" Macro.id4-0003.StringMatch "Id='2708:0003' Profile='Audient/Audient-iD4-0003'" Macro.id4-0009.StringMatch "Id='2708:0009' Profile='Audient/Audient-iD4-0009'" Macro.id14-0008.StringMatch "Id='2708:0008' Profile='Audient/Audient-iD14-0008'" -- 2.52.0