diff --git a/ucm2/USB-Audio/RME/Fireface-UCX-II-HiFi.conf b/ucm2/USB-Audio/RME/Fireface-UCX-II-HiFi.conf new file mode 100644 index 00000000..ccbb58e7 --- /dev/null +++ b/ucm2/USB-Audio/RME/Fireface-UCX-II-HiFi.conf @@ -0,0 +1,712 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +# Available channel configurations: +# - Headphones: stereo +# - Analog line outputs: stereo, 4.0 surround, 5.1 surround +# - Microphone / instrument inputs: mono, stereo +# - Analog line inputs: stereo +# - Digital inputs/outputs: stereo +# +# Other configurations may be added in the future. + +# Priority scheme bits: +# +# Analog: +# 0 analog (1) +# 1 headphones (1), other (0) +# 2╮ channel configuration: stereo (11), 4.0 (10), 5.1 (01), … +# 3╯ microphone or instrument input: mono (11), stereo (10), … +# 4╮ +# 5│ 15 - number within group +# 6│ +# 7╯ +# +# Digital: +# 0 digital (0) +# 1 primary function (1), alternative configuration (0) +# 2╮ channel configuration: +# 3╯ stereo (11), … +# 4╮ +# 5│ 15 - number within group +# 6│ +# 7╯ + +Macro [ + { + SplitPCM { + Name "ucx2_stereo_out" + Direction Playback + Channels 2 + HWChannels 20 + HWChannelPos0 FL + HWChannelPos1 FR + } + } + { + SplitPCM { + Name "ucx2_surround40_out" + Direction Playback + Channels 4 + HWChannels 20 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 RL + HWChannelPos3 RR + } + } + { + SplitPCM { + Name "ucx2_surround51_out" + Direction Playback + Channels 6 + HWChannels 20 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 RL + HWChannelPos3 RR + HWChannelPos4 FC + HWChannelPos5 LFE + } + } + { + SplitPCM { + Name "ucx2_mono_in" + Direction Capture + Channels 1 + HWChannels 20 + HWChannelPos0 MONO + } + } + { + SplitPCM { + Name "ucx2_stereo_in" + Direction Capture + Channels 2 + HWChannels 20 + HWChannelPos0 FL + HWChannelPos1 FR + } + } +] + +# Front: TRS 1/4" headphones output + +SectionDevice."Headphones" { + Comment "Headphones" + + Value { + PlackbackPriority 255 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: TRS 1/4" line outputs 1 to 6 + +SectionDevice."Line 1" { + Comment "Line Output 1+2" + + Value { + PlackbackPriority 192 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" +# Direction Playback +# HWChannels 20 +# Channels 2 + Channel0 0 +# Channel1 1 +# ChannelPos0 FL +# ChannelPos1 FR + } +} + +SectionDevice."Line 2" { + Comment "Line Output 3+4" + + Value { + PlackbackPriority 191 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 3" { + Comment "Line Output 5+6" + + Value { + PlackbackPriority 190 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Line outputs in 4.0 surround configuration + +SectionDevice."Line 4" { + Comment "Line Output 1-4 (4.0 Surround)" + + ConflictingDevice [ + "Line 1" + "Line 2" + ] + + Value { + PlackbackPriority 160 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_surround40_out" + Direction Playback + HWChannels 20 + Channels 4 + Channel0 0 + Channel1 1 + Channel2 2 + Channel3 3 + ChannelPos0 FL + ChannelPos1 FR + ChannelPos2 RL + ChannelPos3 RR + } +} + +# Line outputs in 5.1 surround configuration + +SectionDevice."Line 5" { + Comment "Line Output 1-6 (5.1 Surround)" + + Value { + PlackbackPriority 144 + } + ConflictingDevice [ + "Line 1" + "Line 2" + "Line 3" + "Line 4" + ] + + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_surround51_out" + Direction Playback + HWChannels 20 + Channels 6 + Channel0 0 + Channel1 1 + Channel2 2 + Channel3 3 + Channel4 4 + Channel5 5 + ChannelPos0 FL + ChannelPos1 FR + ChannelPos2 RL + ChannelPos3 RR + ChannelPos4 FC + ChannelPos5 LFE + } +} + +# Back: RCA via breakout cable from 9-pin D-Sub + +SectionDevice."SPDIF 1" { + Comment "S/PDIF Coax Output" + + Value { + PlackbackPriority 112 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: XLR via breakout cable from 9-pin D-Sub +# May be configured for AES/EBU or S/PDIF + +SectionDevice."Line 6" { + Comment "AES/EBU Output" + + Value { + PlackbackPriority 111 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."SPDIF 2" { + Comment "SPDIF XLR Output" + + ConflictingDevice [ + "Line 6" + ] + + Value { + PlackbackPriority 48 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: TOSLINK output +# May be configured for ADAT Optical Interface or S/PDIF + +SectionDevice."Line 7" { + Comment "ADAT Output 1+2" + + Value { + PlackbackPriority 110 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 8" { + Comment "ADAT Output 3+4" + + Value { + PlackbackPriority 109 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 14 + Channel1 15 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 9" { + Comment "ADAT Output 5+6" + + Value { + PlackbackPriority 108 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 16 + Channel1 17 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 10" { + Comment "ADAT Output 7+8" + + Value { + PlackbackPriority 107 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 18 + Channel1 19 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."SPDIF 3" { + Comment "S/PDIF Optical Output" + + ConflictingDevice [ + "Line 7" + "Line 8" + "Line 9" + "Line 10" + ] + + Value { + PlackbackPriority 47 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_out" + Direction Playback + HWChannels 20 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Front: XLR / TRS 1/4" combo mic / line inputs 1 and 2 + +SectionDevice."Mic 1" { + Comment "Mic / Line Input 1" + + Value { + CapturePriority 176 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_mono_in" + Direction Capture + HWChannels 20 + Channels 1 + Channel0 0 + ChannelPos0 MONO + } +} + +SectionDevice."Mic 2" { + Comment "Mic / Line Input 2" + + Value { + CapturePriority 175 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_mono_in" + Direction Capture + HWChannels 20 + Channels 1 + Channel0 1 + ChannelPos0 MONO + } +} + +# Front mic / line inputs in stereo configuration + +SectionDevice."Line 11" { + Comment "Mic / Line Input 1+2" + + ConflictingDevice [ + "Mic 1" + "Mic 2" + ] + + Value { + CapturePriority 160 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Front: TRS 1/4" line inputs 3 and 4 + +SectionDevice."Line 12" { + Comment "Line Instrument Input 3" + + Value { + CapturePriority 174 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_mono_in" + Direction Capture + HWChannels 20 + Channels 1 + Channel0 2 + ChannelPos0 MONO + } +} + +SectionDevice."Line 13" { + Comment "Line Instrument Input 4" + + Value { + CapturePriority 173 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_mono_in" + Direction Capture + HWChannels 20 + Channels 1 + Channel0 3 + ChannelPos0 MONO + } +} + +# Front line instrument inputs in stereo configuration + +SectionDevice."Line 14" { + Comment "Line Instrument Input 3+4" + + ConflictingDevice [ + "Line 12" + "Line 13" + ] + + Value { + CapturePriority 159 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 2 + Channel1 3 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: TRS 1/4" balanced line inputs 5 to 8 + +SectionDevice."Line 15" { + Comment "Line Input 5+6" + + Value { + CapturePriority 172 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 4 + Channel1 5 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 16" { + Comment "Line Input 7+8" + + Value { + CapturePriority 171 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 6 + Channel1 7 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: RCA via breakout cable from 9-pin D-Sub + +SectionDevice."SPDIF4" { + Comment "S/PDIF Coax Input" + + Value { + CapturePriority 112 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 8 + Channel1 9 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: XLR via breakout cable from 9-pin D-Sub +# May be configured for AES/EBU or S/PDIF + +SectionDevice."Line 17" { + Comment "AES/EBU Input" + + Value { + CapturePriority 111 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."SPDIF 5" { + Comment "S/PDIF XLR Input" + + ConflictingDevice [ + "Line 17" + ] + + Value { + CapturePriority 48 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 10 + Channel1 11 + ChannelPos0 FL + ChannelPos1 FR + } +} + +# Back: TOSLINK input +# May be configured for ADAT Optical Interface or S/PDIF + +SectionDevice."Line 18" { + Comment "ADAT Input 1+2" + + Value { + CapturePriority 110 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 19" { + Comment "ADAT Input 3+4" + + Value { + CapturePriority 109 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 14 + Channel1 15 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 20" { + Comment "ADAT Input 5+6" + + Value { + CapturePriority 108 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 16 + Channel1 17 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line 21" { + Comment "ADAT Input 7+8" + + Value { + CapturePriority 107 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 18 + Channel1 19 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."SPDIF 6" { + Comment "S/PDIF Optical Input" + + ConflictingDevice = [ + "Line 18" + "Line 19" + "Line 20" + "Line 21" + ] + + Value { + CapturePriority 47 + } + Macro.pcm_split.SplitPCMDevice { + Name "ucx2_stereo_in" + Direction Capture + HWChannels 20 + Channels 2 + Channel0 12 + Channel1 13 + ChannelPos0 FL + ChannelPos1 FR + } +} diff --git a/ucm2/USB-Audio/RME/Fireface-UCX-II.conf b/ucm2/USB-Audio/RME/Fireface-UCX-II.conf new file mode 100644 index 00000000..3759b85a --- /dev/null +++ b/ucm2/USB-Audio/RME/Fireface-UCX-II.conf @@ -0,0 +1,35 @@ +Comment "Fireface UCX II" + +# The Fireface UCX II provides 20 playback and capture channels each: +# - channels 0 to 7 are analog inputs and outputs +# - channels 8 and 9 are S/PDIF via coax +# - channels 10 and 11 are AES/EBU or S/PDIF via XLR +# - channels 12 to 19 are ADAT Optical Interface (8 channels) +# or S/PDIF (12 and 13) via TOSLINK +# +# Physical connector layout: +# top to bottom, left to right, viewed from device front +# +# Front: +# - 1 MIC / LINE: XLR / 1/4" TRS combo, balanced mono input, 48 V phantom power +# - 2 MIC / LINE: XLR / 1/4" TRS combo, balanced mono input, 48 V phantom power +# - 3 LINE / INSTR.: TRS 1/4", balanced mono input +# - 4 LINE / INSTR.: TRS 1/4", balanced mono input +# - Headphones symbol: TRS 1/4", unbalanced stereo output +# +# Back: +# - LINE INPUTS (BALANCED) [5, 6; 7, 8]: TRS 1/4", balanced mono inputs +# - LINE OUTPUTS (BALANCED) [1, 2; 3, 4; 5, 6]: TRS 1/4", balanced mono outputs +# - ADAT IN: TOSLINK +# - ADAT OUT: TOSLINK +# - AES/EBU & SPDIF: 9-pin D-Sub with breakout cable (2 RCA and 2 XLR) + +SectionUseCase."HiFi" { + Comment "Default" + File "/USB-Audio/RME/Fireface-UCX-II-HiFi.conf" +} + +Define.DirectPlaybackChannels 20 +Define.DirectCaptureChannels 20 + +Include.dhw.File "/common/direct.conf" diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf index 8cf3ce1f..4afb19ad 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -438,6 +438,15 @@ If.zedi10 { True.Define.ProfileName "AllenAndHeath/Zedi10" } +If.fireface-ucx-ii { + Condition { + Type String + Haystack "${CardComponents}" + Needle "USB2a39:3fd9" + } + True.Define.ProfileName "RME/Fireface-UCX-II" +} + If.id4-0003 { Condition { Type String