Skip to content

All sound effects are positioned behind the camera #102

@Schroedingers-Cat

Description

@Schroedingers-Cat

Jazz² Resurrection version

a737dc3

System information

Windows 10 and Linux

Issue description

All sound effects (video sounds, menu sounds, in-game sounds like shooting or flying) are positioned behind the camera. This is fine as long as the playback device is a plain stereo speaker setup. But it causes problems when either a surround speaker setup with 4+ channels is used (Quad, 5.1, 7.1, ...) or when users have the OpenAL hrtf config property set to true (for binaural playback on headphones).

The result on surround speaker setups is that the entire sound image is coming from behind the listener while the music is playing from the front. This doesn't suite the mixing style of a 2D game and it certainly wasn't the case for Jazz2.

The result on binaural headphone setups is that all sounds are processed as coming from behind the listener, which depends on the HRTF data available to OpenAL. However, such back HRTFs usually have a considerable reduction in the high frequency range making them sound much softer.

Steps to reproduce

Either use a (virtual) multichannel sound device and listen to the sound or monitor the channel activity to note that all sounds are played back from the rear channels.
Or set hrtf = true in %appdata%\openal\alsoft.ini and move the default HRTF Default HRTF.mhr from the OpenAL repo into %appdata%\openal\hrtf\. Then start the game and notice how most sounds have less presence now (like the menu sounds or Jazz flying sound).

Alternatively, check the position's Z value in a debugger here

return Vector3(panningPos.X, 0.0f, -panningPos.Y);

or here

When Z is positive, it'll be positioned behind the camera in OpenAL (assuming the camera at Z=0.0f with default rotation which always seemed to be the case and which makes sense for a 2D platform game).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions