From 3790cbc72233496fa5a59a070855c5c3ad47233a Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Mon, 15 Apr 2024 01:16:57 +0930 Subject: [PATCH] USB-Audio: Add Focusrite Vocaster interfaces Add split configs for the Focusrite Vocaster One and Two interfaces. Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/666 Signed-off-by: Geoffrey D. Bennett Signed-off-by: Jaroslav Kysela --- .../Focusrite/Vocaster-One-HiFi.conf | 192 +++++++++++++ ucm2/USB-Audio/Focusrite/Vocaster-One.conf | 10 + .../Focusrite/Vocaster-Two-HiFi.conf | 254 ++++++++++++++++++ ucm2/USB-Audio/Focusrite/Vocaster-Two.conf | 10 + ucm2/USB-Audio/USB-Audio.conf | 22 ++ 5 files changed, 488 insertions(+) create mode 100644 ucm2/USB-Audio/Focusrite/Vocaster-One-HiFi.conf create mode 100644 ucm2/USB-Audio/Focusrite/Vocaster-One.conf create mode 100644 ucm2/USB-Audio/Focusrite/Vocaster-Two-HiFi.conf create mode 100644 ucm2/USB-Audio/Focusrite/Vocaster-Two.conf diff --git a/ucm2/USB-Audio/Focusrite/Vocaster-One-HiFi.conf b/ucm2/USB-Audio/Focusrite/Vocaster-One-HiFi.conf new file mode 100644 index 0000000..c343bcb --- /dev/null +++ b/ucm2/USB-Audio/Focusrite/Vocaster-One-HiFi.conf @@ -0,0 +1,192 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro [ + { + SplitPCM { + Name "vocaster_one_stereo_out" + Direction Playback + Channels 2 + HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + } + } + { + SplitPCM { + Name "vocaster_one_mono_in" + Direction Capture + Channels 1 + HWChannels 10 + HWChannelPos0 MONO + HWChannelPos1 MONO + HWChannelPos2 MONO + HWChannelPos3 MONO + HWChannelPos4 MONO + HWChannelPos5 MONO + HWChannelPos6 MONO + HWChannelPos7 MONO + HWChannelPos8 MONO + HWChannelPos9 MONO + } + } + { + SplitPCM { + Name "vocaster_one_stereo_in" + Direction Capture + Channels 2 + HWChannels 10 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + HWChannelPos4 FL + HWChannelPos5 FR + HWChannelPos6 FL + HWChannelPos7 FR + HWChannelPos8 FL + HWChannelPos9 FR + } + } +] + +SectionDevice."USB 1" { + Comment "Video Call" + + Value { + PlaybackPriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 2" { + Comment "Playback" + + Value { + PlaybackPriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 3" { + Comment "Video Call" + + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_in" + Direction Capture + HWChannels 10 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 4" { + Comment "Show Mix" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_in" + Direction Capture + HWChannels 10 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 5" { + Comment "Host Mic" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_mono_in" + Direction Capture + HWChannels 10 + Channels 1 + Channel0 4 + ChannelPos0 MONO + } +} + +SectionDevice."USB 6" { + Comment "Aux" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_mono_in" + Direction Capture + HWChannels 10 + Channels 1 + Channel0 5 + ChannelPos0 MONO + } +} + +SectionDevice."USB 7" { + Comment "Loopback 1" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_in" + Direction Capture + HWChannels 10 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 8" { + Comment "Loopback 2" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_one_stereo_in" + Direction Capture + HWChannels 10 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} diff --git a/ucm2/USB-Audio/Focusrite/Vocaster-One.conf b/ucm2/USB-Audio/Focusrite/Vocaster-One.conf new file mode 100644 index 0000000..bc898ac --- /dev/null +++ b/ucm2/USB-Audio/Focusrite/Vocaster-One.conf @@ -0,0 +1,10 @@ +Comment "Focusrite Vocaster One" + +SectionUseCase."HiFi" { + Comment "Default" + File "/USB-Audio/Focusrite/Vocaster-One-HiFi.conf" +} + +Include.dhw.File "/common/directm.conf" + +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=10 } diff --git a/ucm2/USB-Audio/Focusrite/Vocaster-Two-HiFi.conf b/ucm2/USB-Audio/Focusrite/Vocaster-Two-HiFi.conf new file mode 100644 index 0000000..d5cf715 --- /dev/null +++ b/ucm2/USB-Audio/Focusrite/Vocaster-Two-HiFi.conf @@ -0,0 +1,254 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro [ + { + SplitPCM { + Name "vocaster_two_stereo_out" + Direction Playback + Channels 2 + HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + } + } + { + SplitPCM { + Name "vocaster_two_mono_in" + Direction Capture + Channels 1 + HWChannels 14 + HWChannelPos0 MONO + HWChannelPos1 MONO + HWChannelPos2 MONO + HWChannelPos3 MONO + HWChannelPos4 MONO + HWChannelPos5 MONO + HWChannelPos6 MONO + HWChannelPos7 MONO + HWChannelPos8 MONO + HWChannelPos9 MONO + HWChannelPos10 MONO + HWChannelPos11 MONO + HWChannelPos12 MONO + HWChannelPos13 MONO + } + } + { + SplitPCM { + Name "vocaster_two_stereo_in" + Direction Capture + Channels 2 + HWChannels 14 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + HWChannelPos4 FL + HWChannelPos5 FR + HWChannelPos6 FL + HWChannelPos7 FR + HWChannelPos8 FL + HWChannelPos9 FR + HWChannelPos10 FL + HWChannelPos11 FR + HWChannelPos12 FL + HWChannelPos13 FR + } + } +] + +SectionDevice."USB 1" { + Comment "Video Call" + + Value { + PlaybackPriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 2" { + Comment "Playback" + + Value { + PlaybackPriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_out" + Direction Playback + HWChannels 4 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 3" { + Comment "Video Call" + + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 4" { + Comment "Show Mix" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 5" { + Comment "Host Mic" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_mono_in" + Direction Capture + HWChannels 14 + Channels 1 + Channel0 4 + ChannelPos0 MONO + } +} + +SectionDevice."USB 6" { + Comment "Guest Mic" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_mono_in" + Direction Capture + HWChannels 14 + Channels 1 + Channel0 5 + ChannelPos0 MONO + } +} + +SectionDevice."USB 7" { + Comment "Mic In 1-2" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 8" { + Comment "Aux" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 9" { + Comment "Bluetooth" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 10" { + Comment "Loopback 1" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."USB 11" { + Comment "Loopback 2" + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "vocaster_two_stereo_in" + Direction Capture + HWChannels 14 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} diff --git a/ucm2/USB-Audio/Focusrite/Vocaster-Two.conf b/ucm2/USB-Audio/Focusrite/Vocaster-Two.conf new file mode 100644 index 0000000..16b720e --- /dev/null +++ b/ucm2/USB-Audio/Focusrite/Vocaster-Two.conf @@ -0,0 +1,10 @@ +Comment "Focusrite Vocaster Two" + +SectionUseCase."HiFi" { + Comment "Default" + File "/USB-Audio/Focusrite/Vocaster-Two-HiFi.conf" +} + +Include.dhw.File "/common/directm.conf" + +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=4 CaptureChannels=14 } diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf index ab23845..7bfbdb7 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -397,6 +397,28 @@ If.focusrite-scarlett-18i20 { True.Define.ProfileName "Focusrite/Scarlett-18i20" } +If.focusrite-vocaster-one { + Condition { + Type RegexMatch + String "${CardComponents}" + Regex "USB1235:8216" + } + True.Define { + ProfileName "Focusrite/Vocaster-One" + } +} + +If.focusrite-vocaster-two { + Condition { + Type RegexMatch + String "${CardComponents}" + Regex "USB1235:8217" + } + True.Define { + ProfileName "Focusrite/Vocaster-Two" + } +} + If.behringer-ulm200d { Condition { Type String -- 2.47.3