What is a Listener?
A listener represents a microphone position in the game so 3D sounds can be assigned to the speakers to mimic a real 3D environment. This is done by mapping the game objects' positional information into the listeners' coordinate system. This coordinate system is defined by a position vector, and front and top orientation vectors. It is therefore necessary to keep the listeners' positional information up to date, otherwise sounds will be rendered through the wrong speakers.
Implementing Multiple Listeners
In a single-player game where you always see only one point of view in the game, one listener is enough. However, if multiple players can play on the same system, or if multiple views are displayed at the same time, each view requires its own listener so audio is appropriately rendered for all of these views. The main difficulty involved with implementing multiple listeners comes from the fact that the positioning of the sound sources doesn't always makes sense in relation to what players are seeing. This is mostly caused by a game using only a single set of speakers to reproduce a 3D environment for several players. A simple representation of this problem is shown in the following figure. It is very hard to tell in which speakers the source should be played, because Listener 0 expects to hear the source in the left speaker while Listener 1 expects to hear it in the right one.
Figure: Two listeners hearing the same source in different speakers The Wwise sound engine supports up to eight listeners, identified by indices 0 to 7. The following sections describe how the Wwise sound engine lets the programmer manipulate these listeners to achieve the expected behavior.
NOTE:
- Multiple listener functionality affects sound objects set in 3D Game-defined mode. Objects set in 2D or 3D User-defined modes are not concerned since they are positioned in the various speakers independently from the position of the sources and listeners in the game environment.
NOTE:
- Everything related to multiple listeners is only available through game programmer implementation via the SDK. There are no special options in the Wwise authoring application to manage the in-game positioning of sources for multiple listeners.
Please refer to the Multiple Listeners section of the SDK documentation for more details.
