#################### Notes for PulseAudio #################### There is way too much magic that simply isn't documented about this system. Multiple Outputs ################ One of my computers has a graphics card that can drive multiple HDMI channels, including their sound channels. In order to be able to simultaneously route audio out multiple channels (e.g., to two different monitors), I had to fiddle deeper in the system than I would have liked. First, I created a custom PulseAudio "profile", ``/usr/share/pulseaudio/alsa-mixer/profile-sets/nwf-multi-hdmi.conf``. This consists of a number of "Mappings" stanzas and a "Profile" stanza:: [General] auto-profiles = no [Mapping hdmi-surround71] description = Digital Surround 7.1 (HDMI) device-strings = hdmi:%f paths-output = hdmi-output-0 channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right priority = 8 direction = output exact-channels = no [Mapping hdmi-surround71-extra1] description = Digital Surround 7.1 (HDMI 2) device-strings = hdmi:%f,1 paths-output = hdmi-output-1 channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right priority = 6 direction = output exact-channels = no [Mapping hdmi-surround71-extra2] description = Digital Surround 7.1 (HDMI 3) device-strings = hdmi:%f,2 paths-output = hdmi-output-2 channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right priority = 6 direction = output exact-channels = no [Mapping hdmi-surround71-extra3] description = Digital Surround 7.1 (HDMI 4) device-strings = hdmi:%f,3 paths-output = hdmi-output-3 channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right priority = 6 direction = output exact-channels = no # Stitch together the mappings to make a profile [Profile nwf-multi-hdmi] description = NWF Multi HDMI output-mappings = hdmi-surround71 hdmi-surround71-extra1 hdmi-surround71-extra2 hdmi-surround71-extra3 priority=1 Then, to tell PulseAudio to actually use this profile, a *udev* rule is required:: SUBSYSTEM=="sound" SUBSYSTEMS=="pci" KERNEL=="card*" ATTRS{vendor}=="0x1002" ATTRS{device}=="0xaaf0" ACTION=="change" ENV{PULSE_PROFILE_SET}="nwf-multi-hdmi.conf"