Skip to content

HRTF Results in Lost Lows and Highs in All Sounds, even 2D #1302

Description

@metallicafan212

Hi, I am a developer, part of the OldUnreal group that develops and maintains free legal licensed releases for Unreal 1998, Unreal Tournament 1999, and (most recently) Unreal Tournament 2004 (https://github.com/OldUnreal).

As part of these patches, we swapped from using the old OpenAL to soft, as we want to support as many platforms as possible, however a constant complaint we see is that people think that the audio in our patches sounds "bad" and digging into it, it's usually HRTF causing it.

Now, I understand that this issue is coming from the model used, and that headphones automatically get detected (I've looked through some of the past issues), and that we should be giving the user a way to disable HRTF directly in our settings (in the works), but the last resort should be turning off HRTF, not the first. 3D audio is awesome after all, and gives a much more immersive experience.

Now, to alleviate some of the issues, I did add code to try and disable HRTF at least on "2d" audio, for UI elements or music. It works for music, but mono sources still are missing lows and highs, as (from looking into it), they're still routed through the HRTF functions

if(!props.mPanningEnabled)

I did try disabling that (as a test, returning the direct channel setting instead of off) and it does work, but it results in much much quieter audio for those sources.

This is how I disable HRTF on "2d" audio like UI and music:

alSourceiDirect(SoundContext, sid, AL_SOURCE_RELATIVE, AL_TRUE);
alSourceiDirect(SoundContext, Source.Source, AL_DIRECT_CHANNELS_SOFT, AL_REMIX_UNMATCHED_SOFT);
alSourceiDirect(SoundContext, sid, AL_SOURCE_SPATIALIZE_SOFT, AL_FALSE);

What option(s) do we have here? Do we just need to add a equalizer to 2d mono sources, or all sources when HRTF is enabled?

We're trying to not fork and ship modified versions as that just means another library in the long list we have to maintain (and there's issues with linux if we do that), so we would either like to work with you to fix the issue here, or work in our codebase to alleviate it for our games.

If needed, I can upload examples. I usually use my personal project patch (HP2) to prototype stuff like audio before going back to our patches, so I've been playing around in there and have an example of what it should sound like vs what it sounds like, including the source audio files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions