Allow us to change the doppler scale on AudioEmitters/Sounds

As a Roblox developer, it is currently too hard to effectively utilise the doppler effect in Roblox. Currently, the Doppler effect can only be controlled with a single property in SoundService, DopplerScale.

This has the issue that all sounds then get affected by the doppler effect, even where it wouldn’t make sense to have it. If we set it very high, it also makes sounds aggressively change in pitch when you move the camera (this is a separate bug), this is an issue in a lot of train games where the DopplerScale is set to a much higher value to get the “whoosing” sound of high speed trains.

Instead, it should be possible to manipulate the effect on an AudioEmitter/Sound itself, so that only sounds I want to be affected by doppler are (sort of like how I can modify attenuation on AudioEmitters, we should have a similar thing for doppler).

If Roblox is able to address this issue, it would improve my development experience because I can then utilise doppler in places where it would make sense, and remove it from things where it wouldn’t make sense to have it, instead of it being one property that controls every sound.

3 Likes

Doppler on AudioEmitters works for you at all? I reimplemented it myself inside the Audio API…

2 Likes

@metatablecatmaid thanks for the feature request! This is currently possible in a few ways:

  1. You can use an AudioPitchShifter as @LightOnOff points out (thanks @LightOnOff!)
  2. You can update AudioPlayer.PlaybackSpeed in a similar way, which may be even more performant.
  3. You can use AudioEcho.RampTime to simulate both Doppler and speed-of-sound in a customizable way (please see this post).

Please let us know if any of these approaches work for you!