From 40d4bbee76f3999cc1a1161723eba8b899addccf Mon Sep 17 00:00:00 2001 From: Malte Linke Date: Sun, 22 Mar 2026 14:20:40 +0100 Subject: [PATCH] Add multitrack mappings for 1.7.3 firmware Add split pcm devices for 1.7.3 multitrack mappings Fix typos in configuration comments Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/729 Signed-off-by: Malte Linke Signed-off-by: Jaroslav Kysela --- ...ter-Pro-II-Multitrack-Capture-Dynamic.conf | 238 ++++++++++++++++++ ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf | 53 +++- ucm2/USB-Audio/USB-Audio.conf | 4 +- 3 files changed, 290 insertions(+), 5 deletions(-) create mode 100644 ucm2/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf diff --git a/ucm2/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf b/ucm2/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf new file mode 100644 index 0000000..83d8f5c --- /dev/null +++ b/ucm2/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf @@ -0,0 +1,238 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro.playback.SplitPCM { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Channels 2 + HWChannels 20 + Device 1 + + HWChannelPos0 FL # Main Mix Left + HWChannelPos1 FR # Main Mix Right + + HWChannelPos2 FL # Fader 1 Left + HWChannelPos3 FR # Fader 1 Right + + HWChannelPos4 FL # Fader 2 Left + HWChannelPos5 FR # Fader 2 Right + + HWChannelPos6 FL # Fader 3 Left + HWChannelPos7 FR # Fader 3 Right + + HWChannelPos8 FL # Fader 4 Left + HWChannelPos9 FR # Fader 4 Right + + HWChannelPos10 FL # Fader 5 Left + HWChannelPos11 FR # Fader 5 Right + + HWChannelPos12 FL # Fader 6 Left + HWChannelPos13 FR # Fader 6 Right + + HWChannelPos14 FL # Virtual Fader 1 Left + HWChannelPos15 FR # Virtual Fader 1 Right + + HWChannelPos16 FL # Virtual Fader 2 Left + HWChannelPos17 FR # Virtual Fader 2 Right + + HWChannelPos18 FL # Virtual Fader 3 Left + HWChannelPos19 FR # Virtual Fader 3 Right +} + +SectionDevice."Mic" { + Comment "Microphone" + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},0" + } +} + +SectionDevice."Line:main" { + Comment "Main" + + Value { + CapturePriority 110 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_1" { + Comment "Fader 1" + + Value { + CapturePriority 120 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_2" { + Comment "Fader 2" + + Value { + CapturePriority 130 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_3" { + Comment "Fader 3" + + Value { + CapturePriority 140 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_4" { + Comment "Fader 4" + + Value { + CapturePriority 150 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_5" { + Comment "Fader 5" + + Value { + CapturePriority 160 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_6" { + Comment "Fader 6" + + Value { + CapturePriority 170 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_virtual_1" { + Comment "Virtual Fader 1" + + Value { + CapturePriority 180 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 14 + Channel1 15 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_virtual_2" { + Comment "Virtual Fader 2" + + Value { + CapturePriority 190 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 16 + Channel1 17 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line:fader_virtual_3" { + Comment "Virtual Fader 3" + + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "rodecaster_pro_ii_dynamic_stereo_in" + Direction Capture + Device 1 + HWChannels 20 + Channels 2 + Channel0 18 + Channel1 19 + ChannelPos0 FL + ChannelPos1 FR + } +} \ No newline at end of file diff --git a/ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf b/ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf index abafb62..250a9ca 100644 --- a/ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf +++ b/ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf @@ -1,7 +1,7 @@ # The RODECaster Pro II has two USB ports, each with its own PID. -# USB1 has additionally the special capability to send multiple additonal tracks (multitrack mode). -# The multitrack functionallity can be configured for output and input individually. -# This soundcard also provides two devices on USB1. Device 0 is always the Mic/Chat Track. Device 1 is the +# USB1 has additionally the special capability to send multiple additional tracks (multitrack mode). +# The multitrack functionality can be configured for output and input individually. +# This sound card also provides two devices on USB1. Device 0 is always the Mic/Chat Track. Device 1 is the # optional multitrack device. Comment "RODECaster Pro II USB" @@ -65,6 +65,23 @@ If.usb1_multitrack { } } } +If.usb1_multitrack_dynamic { + Condition { + Type String + Haystack "${CardComponents}" + Needle "USB19f7:0094" + } + True { + # Multitrack is enabled for Input and Output with dynamic channel assignment (firmware 1.7.3) + SectionUseCase."HiFi" { + Comment "RODECaster Pro II" + Config { + Include.playback.File "/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Playback.conf" + Include.capture.File "/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf" + } + } + } +} If.usb1_multitrack_playback { Condition { Type String @@ -125,6 +142,36 @@ If.usb1_multitrack_capture { } } } +If.usb1_multitrack_capture_dynamic { + Condition { + Type String + Haystack "${CardComponents}" + Needle "USB19f7:0092" + } + True { + # Multitrack is only for Output enabled (firmware 1.7.3) + SectionUseCase."HiFi" { + Comment "RODECaster Pro II" + Config { + Include.capture.File "/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf" + SectionDevice."Speaker" { + Comment "System" + Value { + PlaybackPCM "hw:${CardId},1" + PlaybackPriority 100 + } + } + SectionDevice."Line:chat" { + Comment "Chat" + Value { + PlaybackPCM "hw:${CardId},0" + PlaybackPriority 110 + } + } + } + } + } +} If.usb2 { Condition { diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf index 24f1bad..59b0e53 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -151,9 +151,9 @@ Macro.sony-dualsense-ps5.RegexMatch "Id='054c:0((ce6)|(df2))' Profile='Sony/Dual Macro.boss-katana.StringMatch "Id='0582:01d8' Profile='BOSS/Katana'" Macro.rode-rodecaster-pro-2.RegexMatch { - # RODECaster Pro II USB1: 19f7:0037, 19f7:0072, 19f7:0078, 19f7:0030 + # RODECaster Pro II USB1: 19f7:0037, 19f7:0072, 19f7:0078, 19f7:0030, 19f7:0092, 19f7:0094 # RODECaster Pro II USB2: 19f7:0026 - Id "19f7:00(37|72|78|30|26)" + Id "19f7:00(37|72|78|30|26|92|94)" Profile "RODE/RODECaster-Pro-II" } -- 2.52.0