Audio Engine thread

The new audio engine doesn’t deal with “leafy” features like Doppler. As I detail in my GDC talk, it’s a new low-level audio renderer. Since it’s a new audio renderer, we were finally able to implement less-leafy features like realtime synthesis, a submix graph, and source and submix DSP effects. You don’t need any of this to do Doppler.

Doppler shift is actually a pretty leafy feature and not too bad to implement in BP, so it’ll always end up as lower-priority thing to support. The issue is compounded with the fact that most games don’t actually need a procedural Doppler shift feature as it can easily sound cheesy since pure pitch shifting is almost always not that cool.

In the less-cheesy cases, “baked” Doppler shift is usually more effective from a sound design perspective since you can incorporate other aspects to the situation. E.g. air pressure modulation/noise/wind, etc. Although Doppler Shift in real life is a pitch-shift phenomenon, in reality, there’s a lot more involved.

To do a “baked” implementation, you’d usually implement some sort of game logic to differentiate states (i.e. is the sound moving toward me). Most cases of quickly moving sound sources in games involve projectiles or vehicles. Projectiles can almost always be faked and it sounds good. Non-trivial vehicle audio almost always uses some sort of state-machine-like implementation anyway, and if Doppler is important, you can always add in a “state” for “the vehicle is moving toward the listener at high velocity” and play a sound that has baked Doppler shift. At that point though, might as well just do a custom Doppler implementation (in BP) so you can have precise control of it.

However, in terms of hand-rolling your own in BP if you must do procedural Doppler shift, it’s pretty straightforward. First, realize that you can set the pitch of sounds directly with audio components. So all you need to do is compute the relative velocity and map that to a pitch-shift scale on an audio component. You could also just use the relative velocity directly with the Doppler shift equation (http://formulas.tutorvista.com/physics/doppler-shift-formula.html) but I find “fudging” it by doing a mapping almost always sounds better than making it physically accurate.

All that said, no idea what you mean by “a sample graph for Doppler”. What’s a sample graph? You mean a state-machine-like system? Best done with BP.