]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
Add multitrack mappings for 1.7.3 firmware
authorMalte Linke <me@parzival.space>
Sun, 22 Mar 2026 13:20:40 +0000 (14:20 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 27 Mar 2026 13:59:01 +0000 (14:59 +0100)
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 <me@parzival.space>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/USB-Audio/RODE/RODECaster-Pro-II-Multitrack-Capture-Dynamic.conf [new file with mode: 0644]
ucm2/USB-Audio/RODE/RODECaster-Pro-II.conf
ucm2/USB-Audio/USB-Audio.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 (file)
index 0000000..83d8f5c
--- /dev/null
@@ -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
index abafb62937edd04920899e14e45594aed609d036..250a9caccc3eee8dd1e021729d753b655d5afa7c 100644 (file)
@@ -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 {
index 24f1bad1750ccaa797d008829901bbb74a500820..59b0e531d6deab4e7e55682654255423df9e7bde 100644 (file)
@@ -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"
 }