You are not logged in.

#1 2026-02-02 20:14:15

ceres
Member
Registered: 2026-02-02
Posts: 2

Audio Playback bleeding into Audio Input on Pipewire

Hi,

First of all I'm new to Arch, so forgive me if this is a stupid question.

I have installed Pipewire as my multimedia framework, and for audio purposes it works flawlessly, bar one problem, the playback channel seems to leak audio into my input channel.

I'm using a Universal Audio Volt 4 audio interface as my audio device, and currently it is the only audio device enabled on my system. The issue persists even accounting for physical audio bleed by unplugging my headphones and checking the input with pavucontrol, so it is something on the system end.

Hoping this is just a simple configuration fix that I haven't accounted for

These are all the packages installed related to Pipewire:

pipewire 1:1.4.10-1
pipewire-alsa 1:1.4.10-1
pipewire-audio 1:1.4.10-1
pipewire-jack 1:1.4.10-1
pipewire-pulse 1:1.4.10-1
wireplumber 0.5.13-1

The only Device, Sink and Source I have are for this interface. I disabled the rest with a config file:

~/.config/wireplumber/wireplumber.conf.d/alsa-device-disable.conf

monitor.alsa.rules = [
  {
    matches = [
      { device.name = "alsa_card.pci-0000_0c_00.1" }
    ]
    actions = {
      update-props = {
        device.disabled = true
      }
    }
  }
  {
    matches = [
      { device.name = "alsa_card.pci-0000_03_00.1" }
    ]
    actions = {
      update-props = {
        device.disabled = true
      }
    }
  }
  {
    matches = [
      { device.name = "alsa_card.usb-Generic_USB_Audio-00"}
    ]
    actions = {
      update-props = {
        device.disabled = true
      }
    }
  }
]

This is the output of wpctl inspect on my Device:

$ wpctl inspect 188
id 188, type PipeWire:Interface:Device
    alsa.card = "5"
    alsa.card_name = "Volt 4"
    alsa.components = "USB2b5a:0028"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "V4"
    alsa.long_card_name = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    alsa.mixer_name = "USB Mixer"
    api.acp.auto-port = "false"
    api.acp.auto-profile = "false"
    api.alsa.card = "5"
    api.alsa.card.longname = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    api.alsa.card.name = "Volt 4"
    api.alsa.path = "hw:5"
    api.alsa.split-enable = "true"
    api.alsa.use-acp = "true"
    api.dbus.ReserveDevice1 = "Audio5"
    api.dbus.ReserveDevice1.Priority = "-20"
  * client.id = "67"
  * device.api = "alsa"
    device.bus = "usb"
    device.bus-id = "usb-Universal_Audio_Volt_4_22332055009609-00"
    device.bus-path = "pci-0000:0c:00.4-usb-0:2:1.0"
  * device.description = "Volt 4"
    device.enum.api = "udev"
    device.icon-name = "audio-card-analog-usb"
  * device.name = "alsa_card.usb-Universal_Audio_Volt_4_22332055009609-00"
  * device.nick = "Volt 4"
    device.plugged.usec = "9531675482"
    device.product.id = "0x0028"
    device.product.name = "Volt 4"
    device.serial = "Universal_Audio_Volt_4_22332055009609"
    device.string = "5"
    device.subsystem = "sound"
    device.sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:0c:00.4/usb5/5-2/5-2:1.0/sound/card5"
    device.vendor.id = "0x2b5a"
    device.vendor.name = "Universal Audio"
  * factory.id = "15"
  * media.class = "Audio/Device"
    object.path = "alsa:acp:V4"
  * object.serial = "2320"
    spa.object.id = "12"

This is the output of wpctl inspect on my Sink:

$ wpctl inspect 49
id 49, type PipeWire:Interface:Node
    alsa.card = "5"
    alsa.card_name = "Volt 4"
    alsa.class = "generic"
    alsa.components = "USB2b5a:0028"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "V4"
    alsa.long_card_name = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "16"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    api.alsa.card.longname = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    api.alsa.card.name = "Volt 4"
    api.alsa.headroom = "512"
    api.alsa.path = "surround40:5"
    api.alsa.pcm.card = "5"
    api.alsa.pcm.stream = "playback"
    api.alsa.period-num = "64"
    api.alsa.period-size = "512"
    audio.channels = "4"
    audio.position = "FL,FR,RL,RR"
    card.profile.device = "3"
  * client.id = "67"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
  * device.id = "188"
    device.profile.description = "Analog Surround 4.0"
    device.profile.name = "analog-surround-40"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "Volt 4 Analog Surround 4.0 Output"
    node.driver = "true"
    node.loop.name = "data-loop.0"
    node.max-latency = "16384/48000"
  * node.name = "alsa_output.usb-Universal_Audio_Volt_4_22332055009609-00.analog-surround-40"
  * node.nick = "Volt 4"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:V4:3:playback"
  * object.serial = "2321"
    port.group = "playback"
  * priority.driver = "1109"
  * priority.session = "1109"

And this is the output of wpctl inspect on my Source:

$ wpctl inspect 76
id 76, type PipeWire:Interface:Node
    alsa.card = "5"
    alsa.card_name = "Volt 4"
    alsa.class = "generic"
    alsa.components = "USB2b5a:0028"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "V4"
    alsa.long_card_name = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    alsa.mixer_name = "USB Mixer"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "32"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.sync.id = "00000000:00000000:00000000:00000000"
    api.alsa.card.longname = "Universal Audio Volt 4 at usb-0000:0c:00.4-2, high speed"
    api.alsa.card.name = "Volt 4"
    api.alsa.headroom = "128"
    api.alsa.path = "surround40:5"
    api.alsa.pcm.card = "5"
    api.alsa.pcm.stream = "capture"
    api.alsa.period-num = "256"
    api.alsa.period-size = "128"
    audio.channels = "4"
    audio.position = "FL,FR,RL,RR"
    card.profile.device = "2"
  * client.id = "67"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.bus = "usb"
    device.class = "sound"
    device.icon-name = "audio-card-analog"
  * device.id = "188"
    device.profile.description = "Analog Surround 4.0"
    device.profile.name = "analog-surround-40"
    device.routes = "1"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.source"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Source"
  * node.description = "Volt 4 Analog Surround 4.0 Input"
    node.driver = "true"
    node.loop.name = "data-loop.0"
    node.max-latency = "16384/48000"
  * node.name = "alsa_input.usb-Universal_Audio_Volt_4_22332055009609-00.analog-surround-40"
  * node.nick = "Volt 4"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:V4:2:capture"
  * object.serial = "2322"
    port.group = "capture"
  * priority.driver = "2109"
  * priority.session = "2109"

Just for the sake of listing all non-default configs I have I also have another config which renames the descriptions for the Sink and Source (because otherwise they have the same description):

~/.config/wireplumber/wireplumber.conf.d/device-rename.conf

monitor.alsa.rules = [
  {
    matches = [
	{
	  node.name = "alsa_output.usb-Universal_Audio_Volt_4_22332055009609-00.analog-surround-40"
	}
      ] 
      actions = { 
	update-props = {
	  node.description = "Volt 4 Analog Surround 4.0 Output"
	} 
      }
  } 
  {
    matches = [
      {
        node.name = "alsa_input.usb-Universal_Audio_Volt_4_22332055009609-00.analog-surround-40"
      }
    ]
    actions = {
      update-props = {
        node.description = "Volt 4 Analog Surround 4.0 Input"
      }
    }
  }
]

Any help on this is much appreciated! smile

Offline

#2 Yesterday 20:35:23

ceres
Member
Registered: 2026-02-02
Posts: 2

Re: Audio Playback bleeding into Audio Input on Pipewire

Hi, quick update with relevant information.

I noticed that my  Input Channel 1 on the interface was producing no input on this system, regardless of what I plugged into it (guitar or microphone). This isn't the case with Input Channel 2 through 4 which can produce an Input, and there is definitely an input there (I can monitor inputs using the Interface itself, and Input 1 works as intended with whatever device I have plugged in there)

This could be a bit of a wild theory, but is this problem being caused by the system somehow using Input 1 as a Source for audio from my Sink?  Unfortunately I can't just reduce the input of Channel 1 and use that as a temp fix until I know a fix for this problem, which sucks hmm

(edit: currently going through the process of splitting up my input channels, might be able to get a closer look at what Input 1 is up to after I finish, will come back with anything I find)

Last edited by ceres (Yesterday 20:50:18)

Offline

Board footer

Powered by FluxBB