Wwise has a reputation for being used in console and PC game development where the number of audio channels and the speaker arrangement follow conventional consumer channel configurations; but this is not the only place where Wwise shines. The development of Location-Based Entertainment (LBE), theme park experiences, immersive sound installations and live performance can also be improved using Wwise.
LBE experiences are almost exclusively custom designed and developed for irregular speaker setups that can contain very large numbers of audio channels. In many cases, these experiences are developed using popular game engines such as Unity and Unreal. Out of the box, most of these game engines only support conventional speaker configurations, thus requiring an alternate solution.
Below, I will cover the Wwise setup required when using unconventional speaker configurations and offer up 3 example Wwise implementations that can be easily integrated into an LBE experience.
Due to the use of non-standard speaker configurations in many LBE experiences, when working with Wwise, there is often a need to use the Wwise ASIO Output Plug-in which allows developers to interface with their ASIO-compatible output devices. The setup for this simply involves selecting creating an "ASIO Output" device and assigning this device to the "Master Audio Bus". The correct number of audio channels can be automatically detected or specified explicitly in the plug-in's associated XML file.
The Wwise Channel Router Plug-in is a Wwise mixer plug-in that allows sound designers and developers to route and mix multiple busses with different channel configurations into a single output device. This is especially useful in LBE when a single output device is often used to drive multiple sets of speakers. This plug-in offsets the channels of its child busses so that their signals will get mixed into the appropriate output channel. The offset can be set statically in Wwise or dynamically via RTPC.
Example 1 - Traditional Surround Speaker Channel Configuration With Additional Outputs
In a conventional surround sound setup with a single player, the audio implementation in Wwise doesn't require special handling for the player's sounds. Sounds that are generated by the environment, NPCs and the player are all emitted from the surround speakers.
Let's envision an LBE experience with 9 players, each with a haptic and audio producing weapon controller, within a surround sound speaker environment. In this example, the surround sound speakers would be used to play positioned environmental and NPC mono sound sources. Multichannel ambient content would also be played from the surround sound speakers. For each player, a pair of mono channels could be used to drive the weapon audio and haptic feedback.
In this example, the resulting 24 audio channel configuration is composed of 6 channels of 5.1 surround sound, followed by 9 channels of the sound for each player's weapon controller's audio, then followed by another 9 channels for the haptic feedback for each player's weapon controller.
To implement this in Wwise, all sounds that will be emitted from the surround sound speakers will pass through the "Surround Sound Bus" which is a direct descendant of the "Master Audio Bus" and has it channel configuration explicitly set to 5.1.
In Wwise, all player-specific sounds will be routed through the "Player Sound Bus" that uses the Wwise Channel Router and is setup using listener relative routing.
In the image above, the game parameter "GP_PlayerId" is used to determine the channel offset. This allows for sounds that are the same for all players to be setup identically in Wwise. This setup also makes it easy to implement player specific sounds via Switch Containers by having the Switch Group use a game parameter as in the image below.
With the channel offset of the Wwise Channel Router setup to be controlled via game parameters, the game code is responsible for triggering the appropriate sounds on the appropriate player's weapon controller game-object by sending a value that corresponds to the channel offset for the associated audio channel. The game is also responsible for setting up all player weapon controller game-objects as listeners of themselves.
Player-Specific Haptic Feedback
Similar to the setup of player-specific sounds, player-specific haptic feedback can be implemented using of the Wwise Channel Router so that haptic feedback can be delivered to the appropriate player's weapon controller. In Wwise, the same game parameter that drives the channel offset for the weapon sounds can be used to drive the channel offset for the weapon feedback.
The above Wwise implementation allows the game to post events on positioned game-objects for all surround sounds, and allows the game to post events on player game-objects that have their "GP_PlayerId" RTPC set so that weapon audio and haptic feedback is directed to the appropriate player weapon controller.
For further clarification, consider the "Wwise Channel Router" plugins in the above "Advanced Profiler" image. Game-object "Player 03" has its "GP_PlayerId" RTPC set to 2 which corresponds to audio channel 9 for its "Player Sound Bus" and audio channel 18 for its "Player Haptic Bus". Game-object "Player 07" has its "GP_PlayerId" RTPC set to 6 which corresponds to audio channel 13 for its "Player Sound Bus" and audio channel 22 for its "Player Haptic Bus". All of the sounds that pass through the default listener and subsequently the "Surround Sound Bus" are not modified by the "Wwise Channel Router" and are output to the first 6 audio channels of the ASIO Output device.
Example 2 - Dual Quad Speaker Channel Configuration
Despite currently lacking the ability to automatically adapt to non-standard speaker configurations, Wwise offers developers quite a lot of flexibility in terms of re-purposing standard configurations.
In this example, we have a LBE experience within a cubed speaker setup consisting of 8 speakers - 4 at the corners of the ceiling and 4 at the corners of the floor - where a flying drone with a whirring motor moves around the space.
Two pairs of 4.0 channel configurations are used for both the "Ceiling Audio Bus" and the "Floor Audio Bus".
Using the Wwise Channel Router, the "Floor Audio Bus" has its base channel offset statically to not overlap with the "Ceiling Audio Bus" channels.
In Wwise, a game parameter is used to determine the mix between the ceiling and floor sounds. Depending on the required result and the preferred units, the game parameter can represent the relative height or relative elevation of the flying drone.
In the example below, the "GP_RelativeHeight" RTPC is used to mix between the ceiling and floor sounds. When the emitter is at the same height as the listener, the volume of its sounds are equal for the ceiling and floor speakers.
Events are then designed to simultaneously trigger the sounds in both busses. In the image below, the "Play_FlyingDrone_Motor_Sfx" event is composed of two audio targets, "Drone_Motor_Ceiling_Sfx" and "Drone_Motor_Floor_Sfx", which respectively output to the "Ceiling Audio Bus" and the "Floor Audio Bus".
With the sounds and events implemented in Wwise, the game is responsible for positioning the drone within the 3D space and updating the height or elevation RTPC value. Creative decisions can be made to adjust the attenuation and RTPC curves to ensure that proper distance attenuation is perceived within the space. With this decision made, the game will update the position of the drone game-object with its 3D-position and either use Wwise's built-in distance attenuation or setup RTPCs to mimic distance attenuation curves allowing the sound of the flying drone to appear to originate from an appropriate location in the experience.
Example 3 - Speakers Arranged in a Flat Grid
There are LBE experiences where all the action occurs on a 2D plane. In the following example, envision speakers arranged in a flat grid where sounds are expected to appear as if emitted from any location within this grid including between speaker locations. The difficulty from working with this speaker configuration arises from the facts that this configuration is non-standard and that panning must be determined using distance-based panning instead of a vector-based approach (VBAP). Despite these complications, this problem can be easily overcome using Wwise and a little ingenuity.
In this example, 9 speakers are arranged in a 3 x 3 vertical grid with single emitter that can be located anywhere within the plane.
In Wwise, positioned sounds are setup with listener relative routing and appropriate 3D spatialization settings. Their attenuation curves are configured to ensure that sound is emitted from the correct number of adjacent speakers. This allows attenuation curves to be adjusted to obtain the desired amount of spread or focus.
In the image below, the "Planar Array Mixer" Actor-Mixer is used to simplify the setup in case multiple sounds require these same settings.
The positioned sounds are then routed to the "Speaker Bus" which has no attenuation, no 3D spatialization but has its listener relative routing enabled. On the "Speaker Bus", an RTPC is applied to the Channel parameter of the Wwise Channel Router. Attenuation is set to “None” on the "Speaker Bus" so that the distance to the default listener does not affect the volume calculations.
The game registers (at least) one default listener and a non-default listener game-object for every physical speaker.
Each of these non-default listener game-objects is positioned in-game analogous to its real-world physical location and has its Channel offset RTPC set associating it with the appropriate output audio channel.
Each emitter game-object is then set to be listened to by all non-default listener game-objects. Consequently, the sound emitted by these game-objects will be captured by the surrounding listener game-objects.
As can be seen in the image below, the distance attenuation of the "FlyingDrone_Motor_Sfx" sound is setup to ensure that it is heard by at most its closest 4 listeners.
Currently with a little creativity, Wwise can be used to facilitate the sound design of LBE installations. Upcoming advancements in Wwise will make it even easier to deal with the spatialization of sound within irregular speaker configurations. Stay tuned....