Crossfading Speaker Panning and 3D Spatialization

Sometimes it is desirable to use both Speaker Panning and 3D Spatialization at the same time. A typical case is for transitioning from an environment needing panning to somewhere needing spatialization.

For example, when a player listens to music in a car, the sound would likely be output using Direct Assignment. On the other hand, with the player outside of the car on a city street, a designer would likely want an open world sound output with a 3D spatialization option. But, as the player opens the door and steps out of the car into the street, we want to avoid the jolt of changing from one positioning approach to another. A gradual transition can realistically smooth out the differences.

Within Wwise, if the 3D Spatialization is not set to None, then the Speaker Panning / 3D Spatialization Mix slider becomes available. At 0, there is no 3D Spatialization; at 100, there is no Speaker Panning. All values in between these extremities will produce a relative combination of the two positioning outputs.

To achieve the desired results for our example, an RTPC could be set on the music object's Speaker Panning / 3D Spatialization Mix using a distance-based Game Parameter. The further the distance the player moves away from the car, the lower the slider's value goes. The car's music may remain audible as the distance increases, but it gradually becomes part of the spatialized game world soundscape rather than the standard stereo musical output.

[Note] Crossfading positioning types costs slightly more CPU

Although the overall impact is minimal, it should still be noted that a crossfade of Speaker Panning and 3D Spatialization means both positioning types must be calculated, so the runtime CPU demands are greater than choosing only a single variety.

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise