From d7e8745ce26d9ff931d04b3af83c1fe966d7914e Mon Sep 17 00:00:00 2001 From: Unveiled53 <26770021+Unveiled53@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:23:44 +0000 Subject: [PATCH] USB-Audio: Add support for TASCAM Model 12 Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/490 Signed-off-by: Unveiled53 <26770021+Unveiled53@users.noreply.github.com> Signed-off-by: Jaroslav Kysela --- ucm2/USB-Audio/TASCAM/Model12-HiFi.conf | 445 ++++++++++++++++++++++++ ucm2/USB-Audio/TASCAM/Model12.conf | 11 + ucm2/USB-Audio/USB-Audio.conf | 9 + 3 files changed, 465 insertions(+) create mode 100755 ucm2/USB-Audio/TASCAM/Model12-HiFi.conf create mode 100755 ucm2/USB-Audio/TASCAM/Model12.conf diff --git a/ucm2/USB-Audio/TASCAM/Model12-HiFi.conf b/ucm2/USB-Audio/TASCAM/Model12-HiFi.conf new file mode 100755 index 0000000..2697dfb --- /dev/null +++ b/ucm2/USB-Audio/TASCAM/Model12-HiFi.conf @@ -0,0 +1,445 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro [ + { + SplitPCM { + Name "model12_mono_in" + Direction Capture + Channels 1 + HWChannels 12 + HWChannelPos0 MONO + HWChannelPos1 MONO + HWChannelPos2 MONO + HWChannelPos3 MONO + HWChannelPos4 MONO + HWChannelPos5 MONO + HWChannelPos6 MONO + HWChannelPos7 MONO + HWChannelPos8 MONO + HWChannelPos9 MONO + HWChannelPos10 MONO + HWChannelPos11 MONO + } + } + { + SplitPCM { + Name "model12_stereo_in" + Direction Capture + Channels 2 + HWChannels 12 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + HWChannelPos4 FL + HWChannelPos5 FR + HWChannelPos6 FL + HWChannelPos7 FR + HWChannelPos8 FL + HWChannelPos9 FR + HWChannelPos10 FL + HWChannelPos11 FR + } + } + { + SplitPCM { + Name "model12_stereo_out" + Direction Playback + 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."Mic1" { + Comment "Mono Input 1" + + Value { + CapturePriority 1600 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 0 + ChannelPos0 MONO + } +} + +SectionDevice."Mic2" { + Comment "Mono Input 2" + + Value { + CapturePriority 1500 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 1 + ChannelPos0 MONO + } +} + +SectionDevice."Mic3" { + Comment "Mono Input 3" + + Value { + CapturePriority 1400 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 2 + ChannelPos0 MONO + } +} + +SectionDevice."Mic4" { + Comment "Mono Input 4" + + Value { + CapturePriority 1300 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 3 + ChannelPos0 MONO + } +} + +SectionDevice."Mic5" { + Comment "Mono Input 5" + + Value { + CapturePriority 1200 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 4 + ChannelPos0 MONO + } +} + +SectionDevice."Mic6" { + Comment "Mono Input 6" + + Value { + CapturePriority 1100 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 5 + ChannelPos0 MONO + } +} + +SectionDevice."Mic7" { + Comment "Mono Input 7" + + Value { + CapturePriority 1000 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 6 + ChannelPos0 MONO + } +} + +SectionDevice."Line1" { + Comment "Mono Input 8" + + Value { + CapturePriority 900 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 7 + ChannelPos0 MONO + } +} + +SectionDevice."Mic8" { + Comment "Mono Input 9" + + Value { + CapturePriority 800 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 8 + ChannelPos0 MONO + } +} + +SectionDevice."Line2" { + Comment "Mono Input 10" + + Value { + CapturePriority 700 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_mono_in" + Direction Capture + HWChannels 12 + Channels 1 + Channel0 9 + ChannelPos0 MONO + } +} + +SectionDevice."Line3" { + Comment "Stereo Input 1/2" + + ConflictingDevice [ + "Mic1" + "Mic2" + ] + + Value { + CapturePriority 500 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line4" { + Comment "Stereo Input 3/4" + + ConflictingDevice [ + "Mic3" + "Mic4" + ] + + Value { + CapturePriority 400 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line5" { + Comment "Stereo Input 5/6" + + ConflictingDevice [ + "Mic5" + "Mic6" + ] + + Value { + CapturePriority 300 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line6" { + Comment "Stereo Input 7/8" + + ConflictingDevice [ + "Mic7" + "Line1" + ] + + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line7" { + Comment "Stereo Input 9/10" + + ConflictingDevice [ + "Mic8" + "Line2" + ] + + Value { + CapturePriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line8" { + Comment "Stereo Mix" + + Value { + CapturePriority 600 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_in" + Direction Capture + HWChannels 12 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line9" { + Comment "Stereo Output 1/2" + + Value { + PlaybackPriority 100 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_out" + Direction Playback + HWChannels 10 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line10" { + Comment "Stereo Output 3/4" + + Value { + PlaybackPriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_out" + Direction Playback + HWChannels 10 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line11" { + Comment "Stereo Output 5/6" + + Value { + PlaybackPriority 300 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_out" + Direction Playback + HWChannels 10 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line12" { + Comment "Stereo Output 7/8" + + Value { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_out" + Direction Playback + HWChannels 10 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line13" { + Comment "Stereo Output 9/10" + + Value { + PlaybackPriority 500 + } + Macro.pcm_split.SplitPCMDevice { + Name "model12_stereo_out" + Direction Playback + HWChannels 10 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} diff --git a/ucm2/USB-Audio/TASCAM/Model12.conf b/ucm2/USB-Audio/TASCAM/Model12.conf new file mode 100755 index 0000000..2d8dd50 --- /dev/null +++ b/ucm2/USB-Audio/TASCAM/Model12.conf @@ -0,0 +1,11 @@ +Comment "TASCAM Model 12" + +SectionUseCase."HiFi" { + Comment "Default Alsa Profile" + File "/USB-Audio/TASCAM/Model12-HiFi.conf" +} + +Define.DirectPlaybackChannels 10 +Define.DirectCaptureChannels 12 + +Include.dhw.File "/common/direct.conf" diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf index e10391d..8c4a509 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -195,6 +195,15 @@ If.roland-bridgecastx { True.Define.ProfileName "Roland/BridgeCastXV2" } +If.tascam-m12 { + Condition { + Type String + Haystack "${CardComponents}" + Needle "USB0644:805f" + } + True.Define.ProfileName "TASCAM/Model12" +} + If.motu-m246 { Condition { Type RegexMatch -- 2.47.1