Use non-environmental physics for positional audio? (Doppler, phase) #2600

Closed
opened 2026-02-20 22:09:25 -05:00 by deekerman · 3 comments
Owner

Originally created by @will-ca on GitHub (Oct 18, 2022).

Context

No response

Description

Note: #3234 seems to primarily be about using game map data to simulate evironmental effects like occlusion, attenuation, and reverb, requiring deeper app integration. This is specifically about effects that do not require any more information than should already be available, so I'm opening a new issue.

Phase shift is very important for audio localization, as differences in volume aren't always that great, especially for far-away sources:

https://en.wikipedia.org/wiki/Sound_localization

However, web search shows that this has apparently never been discussed in connection with Mumble.

https://www.google.com/search?hl=en&q=%22mumble%22%20voip%20%22phase%22

On a technical basis, this should be pretty straightforward. Find the difference in distance between the two ears, divide by the speed of sound, and delay one channel by that much.

EDIT: Already implemented in #5094.

Doppler is less universally important, but could be cool in certain settings.

If it can be broken into chunks, it can be as simple as speeding up or slowing down playback. If not, I suppose it can probably be resampled continuously.


Phase shift only requires positioning/orientation, which are presumably already required anyway.

Doppler requires speed, which can be computed from position changes.

Both doppler and phase shift would organically emerge from simulating speed of sound per ear.

Mumble component

Client

OS-specific?

No

Additional information

See also: #1933

Originally created by @will-ca on GitHub (Oct 18, 2022). ### Context _No response_ ### Description Note: #3234 seems to primarily be about using game map data to simulate evironmental effects like occlusion, attenuation, and reverb, requiring deeper app integration. This is specifically about effects that do not require any more information than should already be available, so I'm opening a new issue. **Phase shift** is very important for audio localization, as differences in volume aren't always that great, especially for far-away sources: https://en.wikipedia.org/wiki/Sound_localization However, web search shows that this has apparently never been discussed in connection with Mumble. https://www.google.com/search?hl=en&q=%22mumble%22%20voip%20%22phase%22 On a technical basis, this should be pretty straightforward. Find the difference in distance between the two ears, divide by the speed of sound, and delay one channel by that much. EDIT: Already implemented in #5094. **Doppler** is less universally important, but could be cool in certain settings. If it can be broken into chunks, it can be as simple as speeding up or slowing down playback. If not, I suppose it can probably be resampled continuously. --- Phase shift only requires positioning/orientation, which are presumably already required anyway. Doppler requires speed, which can be computed from position changes. Both doppler and phase shift would organically emerge from simulating speed of sound per ear. ### Mumble component Client ### OS-specific? No ### Additional information See also: #1933
Author
Owner

@Krzmbrzl commented on GitHub (Oct 18, 2022):

Find the difference in distance between the two ears, divide by the speed of sound, and delay one channel by that much.

That's already implemented via https://github.com/mumble-voip/mumble/pull/5094 (if I understood you correctly)

@Krzmbrzl commented on GitHub (Oct 18, 2022): > Find the difference in distance between the two ears, divide by the speed of sound, and delay one channel by that much. That's already implemented via https://github.com/mumble-voip/mumble/pull/5094 (if I understood you correctly)
Author
Owner

@will-ca commented on GitHub (Oct 18, 2022):

That's already implemented via #5094 (if I understood you correctly)

I suppose it is. I did not find it as it used different terminology, but that is the same phenomenon.

@will-ca commented on GitHub (Oct 18, 2022): > That's already implemented via #5094 (if I understood you correctly) I suppose it is. I did not find it as it used different terminology, but that is the same phenomenon.
Author
Owner

@Krzmbrzl commented on GitHub (Oct 3, 2024):

This is now tracked as part of #6597

@Krzmbrzl commented on GitHub (Oct 3, 2024): This is now tracked as part of #6597
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#2600
No description provided.