Can't output audio to multiple HDMI ports
I'd like to be able to output audio to multiple different devices on the same card. Mainly for VR and both the HMD and a TV are connected to my graphics card and I'd like to output audio to both.
aplay -l
shows 6 different devices for card 0 which is my graphics card, but pw-cli info all
just lists a single node for the device as listed below.
Is there any way to get a separate node in PipeWire for each of the devices provided by card 0?
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5]
Subdevices: 1/1
Subdevice #0: subdevice #0
~~snip~~
$ pw-cli info all
~~snip~~
id: 42
permissions: rwxm
type: PipeWire:Interface:Device/3
* properties:
* device.enum.api = "udev"
* device.api = "alsa"
* media.class = "Audio/Device"
* api.alsa.path = "hw:0"
* api.alsa.card = "0"
* api.alsa.card.name = "HDA ATI HDMI"
* api.alsa.card.longname = "HDA ATI HDMI at 0xfca24000 irq 159"
* device.plugged.usec = "2171130"
* device.bus-path = "pci-0000:0d:00.1"
* device.sysfs.path = "/sys/devices/pci0000:00/0000:00:03.1/0000:0b:00.0/0000:0c:00.0/0000:0d:00.1/sound/card0"
* device.bus = "pci"
* device.subsystem = "sound"
* device.vendor.id = "0x1002"
* device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
* device.product.id = "0xab28"
* device.name = "alsa_card.pci-0000:0d:00.1"
* device.description = "HDA ATI HDMI"
* device.nick = "HDA ATI HDMI"
* device.icon-name = "audio-card-analog-pci"
* api.alsa.use-acp = "true"
* api.acp.auto-profile = "false"
* api.acp.auto-port = "false"
* api.dbus.ReserveDevice1 = "Audio0"
* factory.id = "14"
* client.id = "30"
* object.id = "42"
* object.path = "alsa:pcm:0"
* alsa.card = "0"
* alsa.card_name = "HDA ATI HDMI"
* alsa.long_card_name = "HDA ATI HDMI at 0xfca24000 irq 159"
* alsa.driver_name = "snd_hda_intel"
* device.string = "0"
* params: (4)
* 8 (Spa:Enum:ParamId:EnumProfile) r-
* 9 (Spa:Enum:ParamId:Profile) rw
* 12 (Spa:Enum:ParamId:EnumRoute) r-
* 13 (Spa:Enum:ParamId:Route) rw
~~snip~~
id: 48
permissions: rwxm
type: PipeWire:Interface:Node/3
* input ports: 2/64
* output ports: 2/0
* state: "suspended"
* properties:
* object.path = "alsa:pcm:0:hdmi:0,2:playback"
* api.alsa.path = "hdmi:0,2"
* api.alsa.pcm.card = "0"
* api.alsa.pcm.stream = "playback"
* audio.channels = "2"
* audio.position = "FL,FR"
* alsa.resolution_bits = "16"
* device.api = "alsa"
* device.class = "sound"
* alsa.class = "generic"
* alsa.subclass = "generic-mix"
* alsa.name = "HDMI 2"
* alsa.id = "HDMI 2"
* alsa.subdevice = "0"
* alsa.subdevice_name = "subdevice #0"
* alsa.device = "8"
* alsa.card = "0"
* alsa.card_name = "HDA ATI HDMI"
* alsa.long_card_name = "HDA ATI HDMI at 0xfca24000 irq 159"
* alsa.driver_name = "snd_hda_intel"
* device.profile.name = "hdmi-stereo-extra2"
* device.profile.description = "Digital Stereo (HDMI 3)"
* card.profile.device = "6"
* device.id = "42"
* factory.name = "api.alsa.pcm.sink"
* priority.driver = "616"
* priority.session = "616"
* media.class = "Audio/Sink"
* node.nick = "HDA ATI HDMI"
* node.name = "alsa_output.pci-0000:0d:00.1.hdmi-stereo-extra2"
* node.description = "HDA ATI HDMI Digital Stereo (HDMI 3)"
* node.pause-on-idle = "false"
* factory.id = "18"
* client.id = "31"
* node.driver = "true"
* factory.mode = "merge"
* audio.adapt.follower = ""
* library.name = "audioconvert/libspa-audioconvert"
* object.id = "48"
* params: (6)
* 3 (Spa:Enum:ParamId:EnumFormat) r-
* 1 (Spa:Enum:ParamId:PropInfo) r-
* 2 (Spa:Enum:ParamId:Props) rw
* 4 (Spa:Enum:ParamId:Format) -w
* 10 (Spa:Enum:ParamId:EnumPortConfig) r-
* 11 (Spa:Enum:ParamId:PortConfig) rw
~~snip~~