You are not logged in.

#1 2022-08-02 16:15:52

starise
Member
Registered: 2020-12-18
Posts: 2

wireplumber: disable iec958 digital profile

I have a Steinberg UR22mkII USB Audio that only has a physical "analog" output, but also a "digital S/PDIF" software profile. It looks like it's happening for this reason as explained in pipewire FAQs. I want to hide that specific port/profile and keep only the analog one that I'm using. I tried with this config file:

$ cat ~/.config/wireplumber/main.lua.d/51-steinberg.lua
disable_iec958 = {
  matches = {
    {
      { "node.name", "equals", "alsa_output.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.iec958-stereo" },
    },
  },
  apply_properties = {
    ["node.disabled"] = "true",
  },
}

table.insert(alsa_monitor.rules, disable_iec958)
$ wpctl status
Audio
 ├─ Devices:
 │      90. UR22mkII                            [alsa]
 ├─ Sinks:
 │  *   82. UR22mkII Stereo digitale (IEC958)   [vol: 0.50]

$ wpctl inspect 82
id 82, type PipeWire:Interface:Node
    alsa.card = "4"
    alsa.card_name = "Steinberg UR22mkII"
    alsa.class = "generic"
    alsa.device = "0"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "USB Audio"
    alsa.long_card_name = "Yamaha Corporation Steinberg UR22mkII at usb-0000:04:00.0-6.4.1, high speed"
    alsa.name = "USB Audio"
    alsa.resolution_bits = "32"
    alsa.subclass = "generic-mix"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    api.alsa.card.longname = "Yamaha Corporation Steinberg UR22mkII at usb-0000:04:00.0-6.4.1, high speed"
    api.alsa.card.name = "Steinberg UR22mkII"
    api.alsa.path = "iec958:4"
    api.alsa.pcm.card = "4"
    api.alsa.pcm.stream = "playback"
    audio.adapt.follower = ""
    audio.channels = "2"
    audio.position = "FL,FR"
    card.profile.device = "5"
  * client.id = "87"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.class = "sound"
  * device.id = "90"
    device.profile.description = "Stereo digitale (IEC958)"
    device.profile.name = "iec958-stereo"
    device.routes = "1"
  * factory.id = "18"
    factory.mode = "merge"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "UR22mkII Stereo digitale (IEC958)"
    node.driver = "true"
    node.max-latency = "16384/48000"
  * node.name = "alsa_output.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.iec958-stereo"
  * node.nick = "Steinberg UR22mkII"
    node.pause-on-idle = "false"
  * object.path = "alsa:pcm:4:iec958:4:playback"
  * object.serial = "334"
  * priority.driver = "1008"
  * priority.session = "1008"

The problem is that it does not go away. On Gnome > Audio settings I can see the same device can be selected. Running wpctl again, i can find another node called alsa_output.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.iec958-stereo.2. If I disable it, then another one is created with .3 at the end.

Last edited by starise (2022-08-02 16:45:27)

Offline

#2 2022-08-03 00:43:52

mrlamud
Member
Registered: 2014-09-27
Posts: 101

Re: wireplumber: disable iec958 digital profile

Suggest edit  the last line in your "~/.config/wireplumber/main.lua.d/51-steinberg.lua".
.......
table.insert(alsa_monitor.rules, disable_iec958 rule)

Offline

#3 2022-08-05 20:13:23

starise
Member
Registered: 2020-12-18
Posts: 2

Re: wireplumber: disable iec958 digital profile

mrlamud wrote:

Suggest edit  the last line in your "~/.config/wireplumber/main.lua.d/51-steinberg.lua".
.......
table.insert(alsa_monitor.rules, disable_iec958 rule)

Thanks, but not gonna work. My array is called `disable_iec958`, so with `rule` I'm passing nothing.

Offline

Board footer

Powered by FluxBB