Audio sounds degraded ("like really bad headphones") for one tester #108
Labels
No labels
amd
avatars
bug
builder
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
rendering
rt
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
backspace119/Slipstream#108
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A tester reports audio that sounds "weird", as if they "had really bad headphones" (muffled / tinny / low quality). No one else has reported it so far.
Known so far
Information to collect
Alchemy.logfrom an affected session (the audio engine init lines log the OpenAL device and output rate).Candidates
/fp:fast.Tester setup: wired 3.5 mm headphones in the front-panel jack, Gigabyte B550 AORUS ELITE V2 (Realtek onboard codec), Windows 11.
That rules out the Bluetooth hands-free-profile theory.
Leading hypothesis: OpenAL Soft auto-HRTF. Our Windows build uses OpenAL (FMOD is off), opened with
alutInit(NULL, NULL), which gives the default device and context attributes. OpenAL Soft's default ishrtf = auto: it enables HRTF binaural rendering whenever the output endpoint reports itself as headphones. Realtek front-panel jacks typically report exactly that. Generic-dataset HRTF often sounds muffled, "phasey", or "like bad headphones" to people it doesn't fit. Official/Firestorm Windows builds use FMOD, so users don't hear this there. Linux/PipeWire setups rarely report a headphone form factor, which fits a single Windows report.Quick test for the tester (no rebuild): create a text file
%APPDATA%\alsoft.inicontainingthen restart the viewer. If the audio becomes normal, it's HRTF.
Proposed fix: create the ALC context ourselves (
alcOpenDevice+alcCreateContextwithALC_HRTF_SOFT = ALC_FALSEby default), with a preference to enable it. Also log the ALC_HRTF_STATUS_SOFT and output frequency inAlchemy.log.