With 18.04 I can get video and sound. However, I need to manually change the sound settings. There seems to be no default for when HDMI is inserted. Is this normal for HDMI. It would be great if sound automatically went to HDMI when HDMI is inserted?
Also, I have only tried on one TV so far, but I do occasionally get a scrolling line from bottom to top on the videos that does not exist on the laptop screen. Is this a hardware or software incompatibility. Any suggestions to troubleshoot?
I know how to manually change the audio settings. My point was, when I plug in the HDMI, sound does not automatically go to HDMI. And once configured to HDMI, when I unplug HDMI, the sound does not go to the PC. Is this normal?
Need to set HDMI as default device in Pulseaudio
Not fallback as seen in gui controls
Audio streams will try to connect to HDMI first, but use other device if HDMI not available
use command pactl list sinks | grep Name:
to find name for HDMI audio device in Pulseaudio
use this name with command to set HDMI as default playback device pacmd set-default-sink <name>
To check if default set to correct name cat ~/.config/pulse/*default-sink
Any audio stream started after HDMI connected will use default
An audio stream playing on another device when HDMI plugged in will need to be manually redirected to HDMI in pavuucontrol -t 1 playback settings.
changes for each audio stream type are saved and usually only need setting once
So I first changed my default to HDMI via the Sound Settings GUI, rebooted and tried playing something on the PC. No audio. I checked and the default remained HDMI. Before I attempt the changes via command line, I want to ensure I can return to my current settings in case something goes wrong.
I assumed wrong that Analog audio and HDMI would be a different audio devices rather than sub-device on same device
Try this to add new Pulseaudio module temporarily pactl load-module module-switch-on-connect
that should handle automatic switching to HDMI and back
If it doesn’t work right for your needs, reloading Pulseaudio will remove it
can use command pulseaudio -k && pulseaudio --start
but log out or restart pc will also reload Pulseaudio
if you are happy with how that works, it can be added to Pulseaudio permanently sudo nano /etc/pulse/default.pa
must use sudo to save changes, but can change nano for name of another text editor if preferred
Add this line to end of file load-module module-switch-on-connect
Save changes and close text editor
reload Pulsaudio (see earlier)
There is another way to do this by changing card profile in Pulseaudio,
but is more complicated setting up udev rule to do it automatically
$ pulseaudio --dump-modules
module-allow-passthrough When a passthrough stream is requested, route all the other streams to a dummy device
module-alsa-card ALSA Card
module-alsa-sink ALSA Sink
module-alsa-source ALSA Source
module-always-sink Always keeps at least one sink loaded even if it's a null one
module-augment-properties Augment the property sets of streams with additional static information
module-bluetooth-discover Detect available Bluetooth daemon and load the corresponding discovery module
module-bluetooth-policy Policy module to make using bluetooth devices out-of-the-box easier
module-bluez5-device BlueZ 5 Bluetooth audio sink and source
module-bluez5-discover Detect available BlueZ 5 Bluetooth audio devices and load BlueZ 5 Bluetooth audio drivers
module-card-restore Automatically restore profile of cards
module-cli Command line interface
module-cli-protocol-tcp Command line interface protocol (TCP sockets)
module-cli-protocol-unix Command line interface protocol (UNIX sockets)
module-combine Compatibility module (module-combine rename)
module-combine-sink Combine multiple sinks to one
module-console-kit Create a client for each ConsoleKit session of this user
module-dbus-protocol D-Bus interface
module-default-device-restore Automatically restore the default sink and source
module-detect Detect available audio hardware and load matching drivers
module-device-manager Keep track of devices (and their descriptions) both past and present and prioritise by role
module-device-restore Automatically restore the volume/mute state of devices
module-echo-cancel Echo Cancellation
module-esound-sink ESOUND Sink
module-filter-apply Load filter sinks automatically when needed
module-filter-heuristics Detect when various filters are desirable
module-http-protocol-tcp HTTP (TCP sockets)
module-http-protocol-unix HTTP (UNIX sockets)
module-intended-roles Automatically set device of streams based on intended roles of devices
module-ladspa-sink Virtual LADSPA sink
module-loopback Loopback from source to sink
module-match Playback stream expression matching module
module-mmkbd-evdev Multimedia keyboard support via Linux evdev
module-native-protocol-fd Native protocol autospawn helper
module-native-protocol-tcp Native protocol (TCP sockets)
module-native-protocol-unix Native protocol (UNIX sockets)
module-null-sink Clocked NULL sink
module-null-source Clocked NULL source
module-oss OSS Sink/Source
module-pipe-sink UNIX pipe sink
module-pipe-source UNIX pipe source
module-position-event-sounds Position event sounds between L and R depending on the position on screen of the widget triggering them.
module-remap-sink Virtual channel remapping sink
module-remap-source Virtual channel remapping source
module-rescue-streams When a sink/source is removed, try to move its streams to the default sink/source
module-role-cork Mute & cork streams with certain roles while others exist
module-role-ducking Apply a ducking effect based on streams roles
module-rtp-recv Receive data from a network via RTP/SAP/SDP
module-rtp-send Read data from source and send it to the network via RTP/SAP/SDP
module-rygel-media-server UPnP MediaServer Plugin for Rygel
module-simple-protocol-tcp Simple protocol (TCP sockets)
module-simple-protocol-unix Simple protocol (UNIX sockets)
module-sine Sine wave generator
module-sine-source Sine wave generator source
module-snappy-policy Ubuntu Snappy policy management
module-stream-restore Automatically restore the volume/mute/device state of streams
module-suspend-on-idle When a sink/source is idle for too long, suspend it
module-switch-on-connect When a sink/source is added, switch to it or conditionally switch to it
module-switch-on-port-available n/a
module-systemd-login Create a client for each login session of this user
module-tunnel-sink Tunnel module for sinks
module-tunnel-sink-new Create a network sink which connects via a stream to a remote PulseAudio server
module-tunnel-source Tunnel module for sources
module-tunnel-source-new Create a network source which connects via a stream to a remote PulseAudio server
module-udev-detect Detect available audio hardware and load matching drivers
module-virtual-sink Virtual sink
module-virtual-source Virtual source
module-virtual-surround-sink Virtual surround sink
module-volume-restore Compatibility module
module-x11-bell X11 bell interceptor
module-x11-cork-request Synthesize X11 media key events when cork/uncork is requested
module-x11-publish X11 credential publisher
module-x11-xsmp X11 session management