Realm's Notes
Socials
  • 🏠Home
  • 💡Tutorials
    • Capturing Your DJ Controller Output
    • Retaining Windows Mixed Reality support on Windows 11
    • Splitting Mackie ProFXv3 channels on Manjaro
Powered by GitBook
On this page

Was this helpful?

  1. Tutorials

Splitting Mackie ProFXv3 channels on Manjaro

Last updated 1 year ago

Was this helpful?

The 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 . - 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:

💡
Mackie ProFXv3
Pipewire
https://www.reddit.com/r/linuxquestions/comments/vrimtn/splitting_a_pipewire_alsa_nodes_channels/ievs15y/
You might need to play around with the choice of the output channels (playback.props.audio.position) to match your physical outputs in a way that makes sense. For me I mapped the default output from [ FL FR ] (channel 1-2) to [ RL RR ] (channel 3-4). I discarded output channels 1-2 because I don't use them, so I only created one loopback device.