Include.pcm_split.File "/common/pcm/split.conf" Macro [ { SplitPCM { Name "fast_track_ultra_stereo_out" Direction Playback Channels 2 HWChannels 8 HWChannelPos0 FL HWChannelPos1 FR HWChannelPos2 FL HWChannelPos3 FR HWChannelPos4 FL HWChannelPos5 FR HWChannelPos6 FL HWChannelPos7 FR } } { SplitPCM { Name "fast_track_ultra_mixed_in" Direction Capture Channels 1 HWChannels 8 HWChannelPos0 MONO HWChannelPos1 MONO HWChannelPos2 MONO HWChannelPos3 MONO HWChannelPos4 FL HWChannelPos5 FR HWChannelPos6 FL HWChannelPos7 FR } } ] SectionVerb { EnableSequence [ # Fast Track Ultra is also a mixer. # When every volume 100%, it sends everything # everywhere, including through the effect # processor. So we need to zero everything we # do not use. # # Note that 'AInX - OutY Capture' are not # really capture, but input monitoring. # There is no hardware volume control for the captures # other than the physical potentiometers on the device. cset "name='AIn1 - Out1 Capture Volume' 0%" cset "name='AIn2 - Out1 Capture Volume' 0%" cset "name='AIn3 - Out1 Capture Volume' 0%" cset "name='AIn4 - Out1 Capture Volume' 0%" cset "name='AIn5 - Out1 Capture Volume' 0%" cset "name='AIn6 - Out1 Capture Volume' 0%" cset "name='AIn7 - Out1 Capture Volume' 0%" cset "name='AIn8 - Out1 Capture Volume' 0%" cset "name='AIn1 - Out2 Capture Volume' 0%" cset "name='AIn2 - Out2 Capture Volume' 0%" cset "name='AIn3 - Out2 Capture Volume' 0%" cset "name='AIn4 - Out2 Capture Volume' 0%" cset "name='AIn5 - Out2 Capture Volume' 0%" cset "name='AIn6 - Out2 Capture Volume' 0%" cset "name='AIn7 - Out2 Capture Volume' 0%" cset "name='AIn8 - Out2 Capture Volume' 0%" cset "name='AIn1 - Out3 Capture Volume' 0%" cset "name='AIn2 - Out3 Capture Volume' 0%" cset "name='AIn3 - Out3 Capture Volume' 0%" cset "name='AIn4 - Out3 Capture Volume' 0%" cset "name='AIn5 - Out3 Capture Volume' 0%" cset "name='AIn6 - Out3 Capture Volume' 0%" cset "name='AIn7 - Out3 Capture Volume' 0%" cset "name='AIn8 - Out3 Capture Volume' 0%" cset "name='AIn1 - Out4 Capture Volume' 0%" cset "name='AIn2 - Out4 Capture Volume' 0%" cset "name='AIn3 - Out4 Capture Volume' 0%" cset "name='AIn4 - Out4 Capture Volume' 0%" cset "name='AIn5 - Out4 Capture Volume' 0%" cset "name='AIn6 - Out4 Capture Volume' 0%" cset "name='AIn7 - Out4 Capture Volume' 0%" cset "name='AIn8 - Out4 Capture Volume' 0%" cset "name='AIn1 - Out5 Capture Volume' 0%" cset "name='AIn2 - Out5 Capture Volume' 0%" cset "name='AIn3 - Out5 Capture Volume' 0%" cset "name='AIn4 - Out5 Capture Volume' 0%" cset "name='AIn5 - Out5 Capture Volume' 0%" cset "name='AIn6 - Out5 Capture Volume' 0%" cset "name='AIn7 - Out5 Capture Volume' 0%" cset "name='AIn8 - Out5 Capture Volume' 0%" cset "name='AIn1 - Out6 Capture Volume' 0%" cset "name='AIn2 - Out6 Capture Volume' 0%" cset "name='AIn3 - Out6 Capture Volume' 0%" cset "name='AIn4 - Out6 Capture Volume' 0%" cset "name='AIn5 - Out6 Capture Volume' 0%" cset "name='AIn6 - Out6 Capture Volume' 0%" cset "name='AIn7 - Out6 Capture Volume' 0%" cset "name='AIn8 - Out6 Capture Volume' 0%" cset "name='AIn1 - Out7 Capture Volume' 0%" cset "name='AIn2 - Out7 Capture Volume' 0%" cset "name='AIn3 - Out7 Capture Volume' 0%" cset "name='AIn4 - Out7 Capture Volume' 0%" cset "name='AIn5 - Out7 Capture Volume' 0%" cset "name='AIn6 - Out7 Capture Volume' 0%" cset "name='AIn7 - Out7 Capture Volume' 0%" cset "name='AIn8 - Out7 Capture Volume' 0%" cset "name='AIn1 - Out8 Capture Volume' 0%" cset "name='AIn2 - Out8 Capture Volume' 0%" cset "name='AIn3 - Out8 Capture Volume' 0%" cset "name='AIn4 - Out8 Capture Volume' 0%" cset "name='AIn5 - Out8 Capture Volume' 0%" cset "name='AIn6 - Out8 Capture Volume' 0%" cset "name='AIn7 - Out8 Capture Volume' 0%" cset "name='AIn8 - Out8 Capture Volume' 0%" cset "name='DIn1 - Out2 Playback Volume' 0%" cset "name='DIn1 - Out3 Playback Volume' 0%" cset "name='DIn1 - Out4 Playback Volume' 0%" cset "name='DIn1 - Out5 Playback Volume' 0%" cset "name='DIn1 - Out6 Playback Volume' 0%" cset "name='DIn1 - Out7 Playback Volume' 0%" cset "name='DIn1 - Out8 Playback Volume' 0%" cset "name='DIn2 - Out1 Playback Volume' 0%" cset "name='DIn2 - Out3 Playback Volume' 0%" cset "name='DIn2 - Out4 Playback Volume' 0%" cset "name='DIn2 - Out5 Playback Volume' 0%" cset "name='DIn2 - Out6 Playback Volume' 0%" cset "name='DIn2 - Out7 Playback Volume' 0%" cset "name='DIn2 - Out8 Playback Volume' 0%" cset "name='DIn3 - Out1 Playback Volume' 0%" cset "name='DIn3 - Out2 Playback Volume' 0%" cset "name='DIn3 - Out4 Playback Volume' 0%" cset "name='DIn3 - Out5 Playback Volume' 0%" cset "name='DIn3 - Out6 Playback Volume' 0%" cset "name='DIn3 - Out7 Playback Volume' 0%" cset "name='DIn3 - Out8 Playback Volume' 0%" cset "name='DIn4 - Out1 Playback Volume' 0%" cset "name='DIn4 - Out2 Playback Volume' 0%" cset "name='DIn4 - Out3 Playback Volume' 0%" cset "name='DIn4 - Out5 Playback Volume' 0%" cset "name='DIn4 - Out6 Playback Volume' 0%" cset "name='DIn4 - Out7 Playback Volume' 0%" cset "name='DIn4 - Out8 Playback Volume' 0%" cset "name='DIn5 - Out1 Playback Volume' 0%" cset "name='DIn5 - Out2 Playback Volume' 0%" cset "name='DIn5 - Out3 Playback Volume' 0%" cset "name='DIn5 - Out4 Playback Volume' 0%" cset "name='DIn5 - Out6 Playback Volume' 0%" cset "name='DIn5 - Out7 Playback Volume' 0%" cset "name='DIn5 - Out8 Playback Volume' 0%" cset "name='DIn6 - Out1 Playback Volume' 0%" cset "name='DIn6 - Out2 Playback Volume' 0%" cset "name='DIn6 - Out3 Playback Volume' 0%" cset "name='DIn6 - Out4 Playback Volume' 0%" cset "name='DIn6 - Out5 Playback Volume' 0%" cset "name='DIn6 - Out7 Playback Volume' 0%" cset "name='DIn6 - Out8 Playback Volume' 0%" cset "name='DIn7 - Out1 Playback Volume' 0%" cset "name='DIn7 - Out2 Playback Volume' 0%" cset "name='DIn7 - Out3 Playback Volume' 0%" cset "name='DIn7 - Out4 Playback Volume' 0%" cset "name='DIn7 - Out5 Playback Volume' 0%" cset "name='DIn7 - Out6 Playback Volume' 0%" cset "name='DIn7 - Out8 Playback Volume' 0%" cset "name='DIn8 - Out1 Playback Volume' 0%" cset "name='DIn8 - Out2 Playback Volume' 0%" cset "name='DIn8 - Out3 Playback Volume' 0%" cset "name='DIn8 - Out4 Playback Volume' 0%" cset "name='DIn8 - Out5 Playback Volume' 0%" cset "name='DIn8 - Out6 Playback Volume' 0%" cset "name='DIn8 - Out7 Playback Volume' 0%" cset "name='Effect Send AIn1 Volume' 0%" cset "name='Effect Send AIn2 Volume' 0%" cset "name='Effect Send AIn3 Volume' 0%" cset "name='Effect Send AIn4 Volume' 0%" cset "name='Effect Send AIn5 Volume' 0%" cset "name='Effect Send AIn6 Volume' 0%" cset "name='Effect Send AIn7 Volume' 0%" cset "name='Effect Send AIn8 Volume' 0%" cset "name='Effect Send DIn1 Volume' 0%" cset "name='Effect Send DIn2 Volume' 0%" cset "name='Effect Send DIn3 Volume' 0%" cset "name='Effect Send DIn4 Volume' 0%" cset "name='Effect Send DIn5 Volume' 0%" cset "name='Effect Send DIn6 Volume' 0%" cset "name='Effect Send DIn7 Volume' 0%" cset "name='Effect Send DIn8 Volume' 0%" cset "name='Effect Return 1 Volume' 0%" cset "name='Effect Return 2 Volume' 0%" cset "name='Effect Return 3 Volume' 0%" cset "name='Effect Return 4 Volume' 0%" ] } LibraryConfig.remap.Config { ctl.default.map."name='Line1 Playback Volume'" { "name='DIn1 - Out1 Playback Volume'".vindex.0 0 "name='DIn2 - Out2 Playback Volume'".vindex.1 0 } } LibraryConfig.remap.Config { ctl.default.map."name='Line2 Playback Volume'" { "name='DIn3 - Out3 Playback Volume'".vindex.0 0 "name='DIn4 - Out4 Playback Volume'".vindex.1 0 } } LibraryConfig.remap.Config { ctl.default.map."name='Line3 Playback Volume'" { "name='DIn5 - Out5 Playback Volume'".vindex.0 0 "name='DIn6 - Out6 Playback Volume'".vindex.1 0 } } LibraryConfig.remap.Config { ctl.default.map."name='Line4 Playback Volume'" { "name='DIn7 - Out7 Playback Volume'".vindex.0 0 "name='DIn8 - Out8 Playback Volume'".vindex.1 0 } } SectionDevice."Line:12" { Comment "Stereo Output 1/2 (Main - Headphones 1)" Macro.pcm_split.SplitPCMDevice { Name "fasttrackultra_stereo_out" Direction Playback HWChannels 8 Channels 2 Channel0 0 Channel1 1 ChannelPos0 FL ChannelPos1 FR } Value { PlaybackMixer "default:${CardId}" PlaybackMixerElem "Line1" } } SectionDevice."Line:34" { Comment "Stereo Output 3/4 (Headphones 2)" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_stereo_out" Direction Playback HWChannels 8 Channels 2 Channel0 2 Channel1 3 ChannelPos0 FL ChannelPos1 FR } Value { PlaybackMixer "default:${CardId}" PlaybackMixerElem "Line2" } } SectionDevice."Line:56" { Comment "Stereo Output 5/6" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_stereo_out" Direction Playback HWChannels 8 Channels 2 Channel0 4 Channel1 5 ChannelPos0 FL ChannelPos1 FR } Value { PlaybackMixer "default:${CardId}" PlaybackMixerElem "Line3" } } SectionDevice."Line:78" { Comment "Stereo Output 7/8 (S/PDIF)" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_stereo_out" Direction Playback HWChannels 8 Channels 2 Channel0 6 Channel1 7 ChannelPos0 FL ChannelPos1 FR } Value { PlaybackMixer "default:${CardId}" PlaybackMixerElem "Line4" } } # A typical use case is the use 4 front facing inputs as mono inputs # and then use 5/6 from the TRS input from the back (probably stereo). # 7/8 is only connected to S/PDIF so almost always stereo. SectionDevice."Mic:1" { Comment "Input 1" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 1 Channel0 0 ChannelPos0 MONO } } SectionDevice."Mic:2" { Comment "Input 2" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 1 Channel0 1 ChannelPos0 MONO } } SectionDevice."Mic:3" { Comment "Input 3" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 1 Channel0 2 ChannelPos0 MONO } } SectionDevice."Mic:4" { Comment "Input 4" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 1 Channel0 3 ChannelPos0 MONO } } SectionDevice."Line:56" { Comment "Input 5/6" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 2 Channel0 4 Channel1 5 ChannelPos0 FL ChannelPos1 FR } } SectionDevice."SPDIF:78" { Comment "Input 7/8 (S/PDIF)" Macro.pcm_split.SplitPCMDevice { Name "fast_track_ultra_mixed_in" Direction Capture HWChannels 8 Channels 2 Channel0 6 Channel1 7 ChannelPos0 FL ChannelPos1 FR } }