Speed up sample rate - Audio Output over HDMI

I have a strange Problem and I dont know the source, so I have to be vague at first.
Setup:

Desktop PC running Manjaro 6.1.85-1
Hyprland DE
Pavucontrol for Audio Management
Readon RX 580 GPU
Onkyo TX-NR686 AV-Receiver
Samsung UE48JU6550U TV

In my current setup, whenever I have plugged a HDMI Output from my GPU into a HDMI Input of the AV Receiver and its Output into the TV.
Whenever I connect the HDMI to the TV, every played media speeds up resulting in a distorted, speed up and high pitched output on the AV-Receivers Audio-Output.
In Youtube this even effects the speed of the progress bar, that is increased without Youtube itself indicating a change in playback speed. Also Spotify and all other media behave the same.

This Problem does not occur, if I unplug the HDMI to the TV and keep the connection to the AV-Receiver.
It also does not happen, if I log into KDE-Plasma or boot into Windows in the same config. Exclusively in Hyprland, so it seems to be a software issue. I am happy to provide additional logs and info to anybody willing to help.
I will also ask in the Hyprland forum, but since I don’t know the exact problem, I don’t know the source yet.

Welcome to Manjaro forum @p.k

Speeded Up audio playback is most likely due to PulseAudio/PipeWire not resampling audio from audio applications to match the output sink sample-rate for output devices

For example: If HDMI output wants 48000 audio samples per second, but it is getting only 44100 samples per second. 1 second of audio is played in 44100/48000= 0.91875 seconds

I suggest check sample-rates of input and output playback streams in PulseAudio/PipeWire whilst audio is playing

pactl list sink-inputs; pactl list sinks 

Run commands before and after HDMI monitor is connected and compare sample-rates

Thanks for the help. I tried it, but this doesn’t seem to be it. Although it is something sample rate related for sure.

Output:

Sink #1
	State: RUNNING
	Name: alsa_output.pci-0000_2d_00.1.hdmi-stereo-extra3
	Description: Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 4)
	Driver: module-alsa-card.c
	Sample Specification: s16le 2ch 44100Hz
	Channel Map: front-left,front-right
	Owner Module: 7
	Mute: no
	Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
	        balance 0,00
	Base Volume: 65536 / 100% / 0,00 dB
	Monitor Source: alsa_output.pci-0000_2d_00.1.hdmi-stereo-extra3.monitor
	Latency: 0 usec, configured 980000 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
	Properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "AV Receiver"
		alsa.id = "HDMI 3"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "9"
		alsa.card = "1"
		alsa.card_name = "HDA ATI HDMI"
		alsa.long_card_name = "HDA ATI HDMI at 0xfce60000 irq 102"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:2d:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:2d:00.1/sound/card1"
		device.bus = "pci"
		device.vendor.id = "1002"
		device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
		device.product.id = "aaf0"
		device.product.name = "Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]"
		device.string = "hdmi:1,3"
		device.buffering.buffer_size = "352768"
		device.buffering.fragment_size = "176384"
		device.access_mode = "mmap+timer"
		device.profile.name = "hdmi-stereo-extra3"
		device.profile.description = "Digital Stereo (HDMI 4)"
		device.description = "Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 4)"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Ports:
		hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, available)
	Active Port: hdmi-output-3
	Formats:
		pcm

Input:

Sink Input #0
	Driver: protocol-native.c
	Owner Module: 15
	Client: 3
	Sink: 1
	Sample Specification: float32le 2ch 44100Hz
	Channel Map: front-left,front-right
	Format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
	Corked: no
	Mute: no
	Volume: front-left: 26211 /  40% / -23,88 dB,   front-right: 26211 /  40% / -23,88 dB
	        balance 0,00
	Buffer Latency: 1003424 usec
	Sink Latency: 1356803 usec
	Resample method: copy
	Properties:
		media.role = "music"
		media.name = "Spotify"
		application.name = "spotify"
		native-protocol.peer = "UNIX socket client"
		native-protocol.version = "33"
		application.process.id = "2355"
		application.process.user = "pk"
		application.process.host = "pk-ms7c37"
		application.process.binary = "spotify"
		application.language = "en_GB.UTF-8"
		window.x11.display = ":1"
		application.process.machine_id = "76a3354c3b4f407a93ff23cf570a52f8"
		application.process.session_id = "2"
		module-stream-restore.id = "sink-input-by-media-role:music"

So actually they do match up, no matter if the HDMI is connected or not.
Also, the offset is audibly higher than a factor of 0.918. It sounds like more like double the speed.

Sample Specification shows different bit-rates for sink-input (float32le) and sink (s16le)
PulseAudio normally uses default-sample-format = s16le
Please post more information about PulseAudio configuration

pulseaudio --dump-conf | grep sampl

Specifications for TX-NR686 Receiver state it has a 384 kHz/32-bit audio DAC
so it may not be very happy with only 44.1 kHz/16-bit audio over HDMI

I suggest reconfigure PulseAudio to output 48 KHz/24-bit audio

tee ~/.config/pulse/daemon.conf <<< 'resample-method = speex-float-3
default-sample-format = s24le
default-sample-rate = 48000
alternate-sample-rate = 48000

and restart pulseadio service to load new configuration

systemctl --user restart pulseaudio

and check output in pact list sinks

Also suggest connect system to receiver with a USB cable, check if USB audio device shows any audio controls in alsamixer and test audio playback via USB instead of HDMI