Table of Contents

Wwise Reflect

(See the Wwise Reflect Properties below.)

The Wwise Reflect plug-in Effect implements a multi-tap time-varying delay line with filters, for the purpose of simulating spatialized early reflections.

When considering geometrical modeling of acoustics, spatialized early reflections are typically calculated using the "image source technique". With this approach, early reflections can be represented by an image source, as if the geometry from which sound reflects were like a mirror. This is illustrated in the figure below.

In this figure, an emitter E and a listener L exist in the same geometry (room), depicted by the enclosing box (black solid line). The reflection paths from the emitter to the listener are drawn in green (solid line). The image source technique consists of generating an "image" of the emitter for each surface. The image source is placed at the same distance behind the surface, on the line that is normal to the surface and connecting the emitter. The total distance traveled by the sound corresponds to the distance between the image source and the listener. Note that image source placement strictly depends on emitter position and geometry, and not on the listener's position.

The game pushes a list of image sources to a given plug-in instance. For each image source, a tap is added to the delay line, is further filtered, panned, and scaled according to its relative 3D position, distance-based curves, and associated Acoustic Textures.

Wwise Reflect is typically used on an Auxiliary Bus representing early reflections. It will correctly simulate early reflections if the bus is associated with the game object that emits the sounds sent to this bus.

Example: Using Wwise Reflect for sounds emitted by the player in an FPS game

  • Add Wwise Reflect to an Auxiliary Bus.

  • In game, send the player game object to this Auxiliary Bus using AK::SoundEngine::SetGameObjectAuxSendValues().

  • In game, pass a blob of data that describes the image sources (around the listener, corresponding to the geometry around it) for that instance of the plug-in, using AK::SoundEngine::SendPluginCustomGameData() . The data format is described in SDK/include/AK/plugin/AkReflectGameData.h. Each image source results in a panned, filtered, and delayed copy of the signal going through Wwise Reflect.

  • Send a new blob when you need to update the position of the image sources.

[Note] Note

When Reflect is used on a bus that is associated with an object that is different than the listener, the bus's 3D Spatialization positioning mode currently needs to be set to None. Otherwise, Wwise will further transform (pan and attenuate) the image sources generated and spatialized by Wwise Reflect.

Acoustic Textures

With each image source, you may pass up to 4 Acoustic Textures. Acoustic Textures, defined in the Acoustic Texture Editor, represent material properties. During execution of the plug-in, the four absorption bands (Low, Mid Low, Mid High, and High) of each texture translate into four frequency band attenuations.

When more than one Acoustic Texture is applied, band absorption coefficients are combined, as if the signal was successively filtered. This effectively simulates reflections resulting from hitting multiple surfaces.

Default Wwise Reflect Mapping of Frequency Absorption Bands

  • Low: < 250 Hz

  • Mid Low: > 250 Hz and < 1,000 Hz

  • Mid High: > 1,000 Hz and < 4,000 Hz

  • High: > 4,000 Hz

[Tip] It is Possible to Change Reflect's Default Frequency Absorption Band Values

The default Reflect values for frequency absorption can be changed, but this should only be needed in very particular scenarios. To do so, directly edit the %Wwise%\Authoring\x64\Release\bin\plugins\AkReflect.xml file by changing the Default Value for the BaseTextureFrequency. This defines the new default Low band; the other bands successively increase by two octaves.

Using Wwise Reflect to simulate reflections for 3rd person sounds

In order to use Wwise Reflect for 3rd-person sounds, it needs to run on an instance of the bus that is associated with this emitter. See 3D Busses and AK::SoundEngine::SetGameObjectAuxSendValues() for more details. You may use the services of AK::SpatialAudio to help set up bus instances accordingly.

Tweaking Wwise Reflect settings

Reflect comes with a simple set of parameters that you may use to tweak the resulting reflections.

Reflections are panned, filtered, and delayed versions of the downmixed input signal. The delay time is influenced by the game-driven image source's distance and Reflect's Speed of Sound. Filtering and volume scaling depend on the image source's distance and diffraction coefficient evaluated against its various curves. Filtering is also affected by the image source's Acoustic Texture(s).

[Tip] Tip

Distance attenuation curves simulate air absorption and energy decay.

Working with Diffraction

Image sources may also be given a diffraction coefficient. It will normally be zero if the reflection is specular, but will be non-zero when they need to bend around the edge of their reflecting surface in order to reach the listener. Such a reflection would typically be lower in amplitude and filtered. Wwise Reflect exposes curves that let you tweak these parameters against the diffraction coefficient. See Spatial Audio Concepts - Diffraction and Geometric Diffraction of Early Reflections for more details on diffraction, how it interacts with early reflections, and how this can be simulated by AK::SpatialAudio. Note that Geometric Diffraction in AK::SpatialAudio is currently an experimental feature.

Wwise Reflect Properties

Interface Element

Description

Inclusion

Determines whether the element is included or excluded. When selected, the element is included. When unselected, the element is not included. By default, this applies across all platforms. Use the Link indicator (to the left of the check box) to determine or to set platform-specific customizations.

When this option is unselected, the property and behavior options in the Property Editor become unavailable.

Default value: false

Name

The name of the Effect instance.

Effect instances are a group of effect property settings. They can be one of two types: custom instances or ShareSets. Custom instances can be used by only one object, whereas ShareSets can be shared across several objects.

Effect

The type of effect.

Shared by (Used by)

A list of objects that currently subscribe to the selected ShareSet.

This field is called “Used by” when editing a custom instance of the Effect.

Opens a search field where standard alphanumeric entries filter out unmatching elements from the view. Learn more in Using Tables.

Click the Close icon to the left of the search icon to close the search field and remove the filter.

[Note] Note

The searches do not include elements in collapsed nodes of the List View, Query Editor, MIDI Keymap Editor, and Reference View.

Returns the Effect property settings to their default values.

This option is only available when editing a custom instance of the Effect.

Notes

Additional information about the Effect.

General

Speed Of Sound

Units per second. The units correspond to the distance units used by the game and sent to Reflect. The speed of sound in air is ~340 m/s. If your game’s units are centimeters, you should use a value of about 34,000(cm)/s.

Default value: 345
Range: 0.001 to 2147483648

Distance Smoothing

A smoothing filter applied to the reflection ray distance sent to the delay line. More smoothing will cause reflection times to update more slowly, but limit the Doppler pitch shift caused by movement. Normalized value between 0 and 1.

Smoothing Type

Defines the shape of the smoothing filter response over time. The curve icons for IIR and FIR indicate how the filter will shape sudden changes in ray distance.

Threshold Mode

Continous mode allows for a maximum tolerable Doppler pitch shift caused by movement. If movement is fast enough to exceed the threshold, the volume of the reflection will be ducked until the pitch returns to below the threshold. A threshold of 0 will cause the volume of the reflection to be ducked any time movement occurs.

Step mode allows for a distance threshold 'bubble', where reflections are not updated until a minimum amount of displacement occurs. A threshold of 0 will cause Reflect to crossfade between the old and new reflections whenever movement occurs. Crossfading will result in time stretching effects that do not modify pitch.

Pitch Threshold

When in continuous threshold mode, sets the maximum allowable Doppler pitch shift (in cents) before ducking reflection volume. When set to 0, reflections' volume are ducked with movement.

Distance Threshold

When in step threshold mode, sets the minimum change in ray distance (in game units) needed to update the reflection delay time. When set to 0, reflections are crossfaded with movement.

Center %

Center % used for 3D positioning. Refer to the Positioning Tab: Audio and Auxiliary Busses for more details on how Wwise handles Center% with 3D positioning.

Default value: 100
Range: 0 to 100

Output Level

The volume level (dB) of the wet signal .

Default value: 0
Range: -96 to 24

Monitoring List

Filter

Type anything that matches, in whole or in part, a game object's Name or ID content. Both the Monitoring List table and the curves cursors in the graph view will only display the matching image sources.

Clears the Filter field and thereby displays all image sources on which Wwise Reflect applies in the columns below and the associated graph curves.

Controls the Mute and Solo states for the image source and shows its implicit mute and solo states.

Muting an image source silences it for the current monitoring session. Soloing an image source silences all the other image sources in the current instance of Wwise Reflect.

A bold M or S indicates that the Mute or Solo state has been explicitly set for the image source. A non-bold M or S with faded color indicates that the image source's Mute or Solo state was implicitly set from another image source state.

[Note] Note

Mute and Solo are designed to be used for monitoring purposes only and are not persisted in the project or stored in the SoundBanks.

Image Source ID

An identification number associated with the image source. This is a unique number assigned by the game.

Image Source Name

The name of the image source.

Game Object ID

An identification number associated with the game object. This is a unique number assigned by the game.

Game Object Name

The name of the game object.

Textures

The name (or ID, if name not found) of the Acoustic Texture(s) on which the sound is reflected.

[Note] Note

More than one texture will be listed for second reflections.

Distance

The distance in game units between the image source and the listener.

Smoothed Distance

The current value of distance after the smoothing filter is applied.

Current Pitch

When in continuous threshold mode, the current Doppler pitch shift (in cents) caused by changing reflection distance.

Displacement

When in step threshold mode, the accumulated displacement away from the current reflection length that has yet to be applied. Resets to 0 when the distance threshold is exceeded.

(Image Source Graph View)

A graphical representation of the relationship between the Distance (X axis) and an image source property value (Y axis).

The graph view can display several curves simultaneously.

Cursor Name Category

A list to specify the parameter flag to display (or not) in the graph view:

  • No Flag
  • Image Source ID
  • Image Source Name
  • Game Object ID
  • Game Object Name
  • Texture(s)

Default value: No Flag

X

The coordinate along the X axis of the selected control point. The X value represents the value of a selected Distance.

If more than one control point is selected, the field displays a value of 0, so that you can increase or decrease the value of all selected control points relative to their current values. For example, if you select two control points and move the X slider -5, both control points will move to the left by 5 units.

Y

The coordinate along the Y axis of the selected control point. The Y value represents a property value (Distance Attenuation volume in decibels, Distance Spread in percentage, or Low/High-Pass Filter in Hertz).

If more than one control point is selected, the field displays a value of 0, so that you can increase or decrease the value of all selected control points relative to their current values. For example, if you select two control points and type 5 in the Y text box, both control points will move up by 5 units.

Zooms in towards the center of the graph view.

Resets the graph view to the default zoom factor ratio of 1:1.

Zooms out from the center of the graph view.

Max Distance

Max distance for curves, in game units.

Default value: 1000
Range: 1 to 2147483648

(Pin/Unpin)

When the Pin icon is selected, the property curve's outline remains in the graph view even if it is not currently selected.

Color

A color block legend for distinguishing the different graph view curves.

Property

One of the following eight different Wwise Reflect image source curves, which appear in the graph view, where they can be edited, if selected.

  • Distance Attenuation: Volume attenuation based on the distance between the image source and the listener.
  • Distance Attenuation (Emitter vs. Listener): Volume attenuation based on the distance between the emitter and the listener.
  • Distance Spread: Spread used for 3D positioning, based on the distance between the image source and the listener. Refer to the Wwise Help's How 3D positioning is calculated: for more details on how Wwise handles Spread with 3D positioning.
  • Distance Low-pass Filter: First order low-pass filter based on the distance between the image source and the listener.
  • Distance High-pass Filter: First order high-pass filter based on the distance between the image source and the listener.
  • Diffraction Attenuation: Volume attenuation based on the diffraction coefficient of this reflection. In order to ensure smooth interpolation between specular and diffracted reflections, you should make sure that the value is 0 dB at 0% diffraction.
  • Diffraction Low-pass Filter: First order low-pass filter based on the diffraction coefficient of this image source. In order to ensure smooth interpolation between specular and diffracted reflections, you should make sure that the value is highest (no filtering) at 0% diffraction.
  • Diffraction High-pass Filter: First order high-pass filter based on the diffraction coefficient of this image source. In order to ensure smooth interpolation between specular and diffracted reflections, you should make sure that the value is lowest (no filtering) at 0% diffraction.