Automated listener speed of sound delays?

(Robert Wojtowicz) #1


I am doing a preliminary analysis on switching our company’s simulation to FMOD Studio and would like to know if FMOD (API) handles speed of sound delays inherently as long as the listener and event positions are properly maintained in the API? I know there are doppler effects, just wondering about delaying sounds based on listener distance. Note that just delaying the start of an event (sound) is not always a full solution if it’s a sound of an engine for example with varied RPM/Load/Boost etc which may need to be delayed while Listener/Source are moving.

Thanks in advance for any info.

(Joseph Harvey) #2

Our middleware does not automatically simulate any delay due to speed-of-sound, as such delay is almost always undesirable. There are multiple reasons for this.

Humans typically do not notice delays due to speed-of-sound, as most events that we pay attention to occur at distances and speeds small enough for the delay to be negligible. We therefore only notice delays when they are extreme, such as when standing in an echo valley, or when a very loud event occurs at a very great distance. In our experience, when players encounter delay outside of those few specific situations where they expect to hear it, they recognise it as unnatural, buggy behavior, rather than as accurate simulation. To put it another way, realistic delay sounds unrealistic more often than not.

In any game where player reaction speed is important, speed-of-sound-based delay results in audio cues that arrive a variable amount of time after the game event they herald, or in cues that arrive a significant amount of time after the corresponding event has occurred. Players often cannot usefully react to these cues, resulting in frustration.

Finally, calculating delay and buffering output for each event would consume a very large amount of system resources, and very few games allocate enough resources to audio to make accurate simulation of delay worthwhile.

Given all of the above, almost all developers prefer not to simulate delay. Instead, they ignore it except for the few situations where it would be expected, and then build it into the specific sound events that need it.

If your game project does definitely require simulation of delay for events, please contact and let us know what specific requirements you have; We will be happy to suggest potential solutions.

(Robert Wojtowicz) #3

Thank you for the information. I do see where you are coming from with the user’s expectations. However I think it would be a good option to implement in FMOD for core engines and “serious games” or simulations. Core engines like Unity, Unreal Engine (but they already have their own solutions/abstractions for it I believe).

Being an optional macro in the API, or switch on Events would prevent the feature chewing up resources for 90% of customers.

If we have questions on how to implement it on top of FMOD we’ll be sure to contact you. (we already have a solution for other less glamorous sound engines) :slight_smile: