You are not logged in.
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
Suggest edit the last line in your "~/.config/wireplumber/main.lua.d/51-steinberg.lua".
.......
table.insert(alsa_monitor.rules, disable_iec958 rule)
Offline
Suggest edit the last line in your "~/.config/wireplumber/main.lua.d/51-steinberg.lua".
.......
table.insert(alsa_monitor.rules,disable_iec958rule)
Thanks, but not gonna work. My array is called `disable_iec958`, so with `rule` I'm passing nothing.
Offline
Did you manage to find a solution to this? I am having the same problem. I am trying to disable all IEC598 profiles (and some other things) without success. Just like in your case, the profiles are still visible and can be selected in Gnome Settings. They don't seem to work, but they are visible and polluting.
Here is my lua file
disable_hdmi = {
matches = {
{
{ "device.name", "equals", "alsa_card.pci-0000_0d_00.1" },
},
},
apply_properties = {
["device.disabled"] = true,
},
}
disable_onboard = {
matches = {
{
{ "device.name", "equals", "alsa_card.pci-0000_0f_00.4" },
},
},
apply_properties = {
["device.disabled"] = true,
}
}
disable_iec958_stereo = {
matches = {
{
{ "device.profile.name", "equals", "iec958-stereo" },
},
},
apply_properties = {
["node.disabled"] = true,
}
}
table.insert(alsa_monitor.rules, disable_hdmi)
table.insert(alsa_monitor.rules, disable_onboard)
table.insert(alsa_monitor.rules, disable_iec958_stereo)
Offline
Pipewire already comes with "analog-only" profile-set. It does exactly that, disables IEC958 profiles. You just have to select it.
$ cat ~/.config/wireplumber/main.lua.d/51-alsa-custom.lua
rule = {
matches = {
{
{ "device.nick", "matches", "Maono Elf pro" },
},
},
apply_properties = {
["device.profile-set"] = "analog-only.conf",
},
}
table.insert(alsa_monitor.rules,rule)
Offline