--- /dev/null
+Include.pcm_split.File "/common/pcm/split.conf"
+
+Macro [
+ {
+ SplitPCM {
+ Name "m4_stereo_out"
+ Direction Playback
+ Channels 2
+ HWChannels 4
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ HWChannelPos2 FL
+ HWChannelPos3 FR
+ }
+ }
+ {
+ SplitPCM {
+ Name "m4_mono_in"
+ Direction Capture
+ Channels 1
+ HWChannels 4
+ HWChannelPos0 MONO
+ HWChannelPos1 MONO
+ HWChannelPos2 MONO
+ HWChannelPos3 MONO
+ }
+ }
+ {
+ SplitPCM {
+ Name "m4_stereo_in"
+ Direction Capture
+ Channels 2
+ HWChannels 4
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ HWChannelPos2 FL
+ HWChannelPos3 FR
+ }
+ }
+]
+
+SectionDevice."Line1" {
+ Comment "Headphone + Monitor Out"
+ Value {
+ PlaybackPriority 200
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 0
+ Channel1 1
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line2" {
+ Comment "Line Out"
+
+ Value {
+ PlaybackPriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 2
+ Channel1 3
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Mic1" {
+ Comment "Mic In 1L"
+
+ Value {
+ CapturePriority 200
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_mono_in"
+ Direction Capture
+ HWChannels 4
+ Channels 1
+ Channel0 0
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Mic2" {
+ Comment "Mic In 2R"
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_mono_in"
+ Direction Capture
+ HWChannels 4
+ Channels 1
+ Channel0 1
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line3" {
+ Comment "Line In L"
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_mono_in"
+ Direction Capture
+ HWChannels 4
+ Channels 1
+ Channel0 2
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line4" {
+ Comment "Line In R"
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_mono_in"
+ Direction Capture
+ HWChannels 4
+ Channels 1
+ Channel0 3
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Mic3" {
+ Comment "Stereo Mic In 1L+1R"
+
+ ConflictingDevice [
+ "Mic1"
+ "Mic2"
+ ]
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_stereo_in"
+ Direction Capture
+ HWChannels 4
+ Channels 2
+ Channel0 0
+ Channel1 1
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line5" {
+ Comment "Stereo Line In L+R"
+
+ ConflictingDevice [
+ "Line3"
+ "Line4"
+ ]
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "m4_stereo_in"
+ Direction Capture
+ HWChannels 4
+ Channels 2
+ Channel0 2
+ Channel1 3
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
--- /dev/null
+Comment "MOTU M4"
+
+SectionUseCase."HiFi" {
+ Comment "Analog Stereo Outputs + Inputs"
+ File "/USB-Audio/MOTU/M4-HiFi.conf"
+}
+
+Define.DirectPlaybackChannels 4
+Define.DirectCaptureChannels 4
+
+Include.dhw.File "/common/direct.conf"
+