You are not logged in.

#1 Yesterday 20:14:15

ceres
Member
Registered: Yesterday
Posts: 1

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

Board footer

Powered by FluxBB