mirror of
https://github.com/mumble-voip/mumble.git
synced 2026-03-03 00:46:56 -05:00
Use non-environmental physics for positional audio? (Doppler, phase) #2600
Labels
No labels
GlobalShortcuts
Hacktoberfest
accessibility
acl
asio
audio
bonjour
bsd
bug
build
certificate
ci
client
code
documentation
external-bug
feature-request
gRPC
github
good first issue
help wanted
help-needed
ice
installer
linux
macOS
needs-ckeck-with-latest-version
needs-more-input
overlay
positional audio
priority/P0 - Blocker
priority/P1 - Critical
priority/P2 - Important
priority/P3 - Somewhat important
priority/P4 - Low
public-server-registration
qt
recording
release-management
server
stale-no-response
stale-support
support
task
test
theme
translation
triage
ui
windows
wontfix
x64
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/mumble-mumble-voip#2600
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?
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
@Krzmbrzl commented on GitHub (Oct 18, 2022):
That's already implemented via https://github.com/mumble-voip/mumble/pull/5094 (if I understood you correctly)
@will-ca commented on GitHub (Oct 18, 2022):
I suppose it is. I did not find it as it used different terminology, but that is the same phenomenon.
@Krzmbrzl commented on GitHub (Oct 3, 2024):
This is now tracked as part of #6597