Splitting Mackie ProFXv3 channels on Manjaro

The Mackie ProFXv3 mixers do not have drivers for Linux, and its main output is on channels 3 & 4. Manjaro sees the mixer as a 4.0 surround device instead so we need to split channels 1-2 and 3-4. Assumptions: - You're using Pipewire. - You're using the Mackie ProFX6v3.

Splitting the channels:

  1. Find the node name of your card. Just look through what pw-cli list-objects | grep alsa_output returns. One of them is your device's node.name .

  2. Copy the pipewire config file from /usr/share/pipewire/pipewire.conf to ~/.config/pipewire/pipewire.conf.

  3. Install helvum and check the names of the playback channels of the device. it will be a bunch of playback_<x>. The x is important later. Figure out which x is which physical output.

  4. Inside the newly created config file we're going to create two loopback devices inside the context.modules section. (One for 1-2 and one for 3-4) Each of them will look like this:

~/.config/pipewire/pipewire.conf

...

{   
    name = libpipewire-module-loopback
    args = {        
        node.description = "<Pick a description for your stereo output>"
        capture.props = {
            node.name = "<Pick a name>"
            media.class = "Audio/Sink"
            audio.position = [ FL FR ]
        }
        playback.props = {
            node.name = "playback.<Name you picked>"
            audio.position = [ <the x's from step 3 go here> ]
            node.target = "<the node name from step 1 goes here>"
            stream.dont-remix = true
            node.passive = true
        }
    }
}

...
  1. When you have added both loopback devices to the config, reload pipewire with systemctl --user restart pipewire.service. Check in helvum (restart the app after restarting pipewire) if the loopback devices map to the correct outputs and test it with a test tone or some other audio to make sure.

  2. Once you have figured out the right mapping you're done. Don't forget to set your system audio to the loopback device instead of the raw device. This config is loaded every time pipewire starts.

Original source: https://www.reddit.com/r/linuxquestions/comments/vrimtn/splitting_a_pipewire_alsa_nodes_channels/ievs15y/

Last updated