Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HRTF support (OpenAL Soft Backend?) #1933

Closed
Hiradur opened this issue Nov 27, 2015 · 12 comments
Closed

HRTF support (OpenAL Soft Backend?) #1933

Hiradur opened this issue Nov 27, 2015 · 12 comments
Labels
audio feature-request This issue or PR deals with a new feature help-needed positional audio

Comments

@Hiradur
Copy link

Hiradur commented Nov 27, 2015

I read on the Mumble wiki about HRTF and I wonder if the implementation of an OpenAL Soft backend has ever been considered. OpenAL Soft can process HRTF calculations internally.
It's fairly easy to achieve HRTF processing with OAL Soft, all you need is an HRTF data set (OAL Soft ships with a default one), set the listener's Position, At and Up vector correctly (Mumble already has this data through Mumble Link), place the player voices correctly (Mumble receives that data from other clients) and turn HRTF processing on.

Benefits of OpenAL Soft:

  • FOSS (LGPLv2)
  • Cross platform (both in terms of OS and CPU architecture)
  • internal calculation of HRTF
    • can be requested by app or enforced by user for all OpenAL apps
    • calculation is optimized: intrinsics for NEON, SSE and AVX instruction sets
    • over 50 compatible HRTF data sets to find one which matches your head shape best
  • internal calculation of Doppler Effect (if desired)
  • OpenAL EFX to simulate reverbation of environment (if desired)

Links:
Official site of OpenAL Soft: http://kcat.strangesoft.net/openal.html
OpenAL Soft repo on GitHub: https://github.com/kcat/openal-soft
Demonstration video of OpenAL Soft HRTF: https://www.youtube.com/watch?v=UtFatWeEvGY

@ghost
Copy link

ghost commented Nov 27, 2015

I used OpenAL when I made my terminal Mumble client, and it worked great.

From the OpenAL soft project page:

ALSA, OSS, DirectSound, PulseAudio, MMDevAPI, CoreAudio, Solaris, QSA, SoundIO, OpenSL, WinMM, PortAudio, "Null" Output, and a .wav writer are currently implemented.

@Hiradur Were you thinking that OpenAL replace all of Mumble's current audio systems, or just have it as an additional one? It seems like it could replace everything, but someone who knows the audio system better could probably tell me why this is a bad idea.

@Hiradur
Copy link
Author

Hiradur commented Nov 27, 2015

@bontibon Very nice, I'll check it out.
For now I only propose to use OpenAL Soft as an additional backend not replacing the existing ones. I'm unfamiliar with how OpenAL handles input capturing and low level technical details so I can't say if it's suited to replace the existing backends or not.

@mkrautz
Copy link
Contributor

mkrautz commented Nov 28, 2015

In general, we are never opposed to new audio backends, as long as there is someone to maintain them.

We already have problems in this regard with PulseAudio/ALSA.

@Kissaki Kissaki added the feature-request This issue or PR deals with a new feature label Dec 10, 2015
@Hiradur
Copy link
Author

Hiradur commented May 7, 2016

@bontibon Does barnard have support for the positional audio feature?

@DGMurdockIII
Copy link

Any progress on this

@ghost
Copy link

ghost commented Aug 6, 2017

I agree, an optional OpenAL Soft backend would be really nice here for Mumble Link supported games in order to take advantage of the built-in HRTF processing.

@foresto
Copy link

foresto commented Jun 15, 2021

Just adding some keywords here to make it easier to find now that the HRTF discussion in #2324 (simple binaural audio) has ended:

It would be impressive if mumble could do advanced positional audio with a head-related transfer function. The experience in Overwatch, where I could hear when someone was (for example) above and behind my left shoulder so reliably that I could swivel around to aim at them in a single motion, was excellent.

@mirh
Copy link

mirh commented Jun 15, 2021

I'm pretty sure openal-soft could actually allow do ditch away all the OS-specific cruft, if one really wanted.
And to the extent of my understanding, there really isn't any other cross-platform HRTF implementation (let alone open source)

On the other hand, from the point of view of an application, you actually simply just code against "OpenAL".. not openal-soft specifically.

@Krzmbrzl Krzmbrzl changed the title OpenAL Soft Backend? HRTF support (OpenAL Soft Backend?) Jun 16, 2021
@mirh
Copy link

mirh commented Nov 24, 2021

https://ieeexplore.ieee.org/document/5661988
Did nobody know about this?
@jfeldmaier

@davidebeatrici
Copy link
Member

Yes, see #2324 (comment).

I now uploaded the PDF file on our server: https://dl.mumble.info/docs/rothbucher2010.pdf

@foresto
Copy link

foresto commented Mar 4, 2023

This looks interesting:

https://doc.qt.io/qt-6/qtspatialaudio-index.html

Qt Spatial Audio is an add-on module that provides a rich set of QML types and C++ classes to implement sound fields in 3D space. It contains an easy to use API for positing a listener in space, adding localized sound sources around the listener and emulating virtual rooms with reverb and reflections.

@Krzmbrzl
Copy link
Member

Krzmbrzl commented Oct 3, 2024

I have created a (hopefully) more streamlined issue that tracks positional audio improvements via advanced physical sound modelling at #6597.
Future discussion about this feature should be directed to that issue.

The main reason for creating a new issue is that I have tried to summarize this feature as well as some other feature requests in the same spirit in the hope to make these things better findable via the issue search.

@Krzmbrzl Krzmbrzl closed this as not planned Won't fix, can't repro, duplicate, stale Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audio feature-request This issue or PR deals with a new feature help-needed positional audio
Projects
None yet
Development

No branches or pull requests

8 participants