Table of Contents

Wwise Convolution Reverb

(See the Wwise Convolution Properties below.)

The Wwise Convolution Reverb plug-in can be used to simulate the acoustics of real spaces. It uses a pre-recorded impulse response of the space being modeled and performs the convolution of the incoming audio signal with a given impulse response file. This applies the acoustics of the recorded room held in the impulse response onto the incoming audio signal as if the sound were played within that environment.

The Wwise Convolution Reverb comes with a collection of various acoustical spaces, which are ready-to-use Presets available within new Wwise projects. You can also provide your own impulse response recordings, either obtained through an existing library (commercial or free) or through in-house recordings of a space.

The acoustical properties of these spaces can be tuned through many settings that can be edited in the interface to obtain a variety of alternate spaces derived from the same impulse response recordings.

The Wwise Convolution Reverb plug-in performs its processing in two stages:

  • Offline impulse response conversions: Certain settings are applied offline to the original displayed impulse response file. Every time one of these parameters changes, a new converted impulse response is created in the background with the offline parameter settings applied onto it. All parameters controlled within or above the impulse response display, located in the left portion of the interface, are parameters which are processed offline. These changes are automatically applied behind the scenes for playback in Wwise or when generating SoundBanks.

    [Warning] Warning

    When making a change to one of the offline settings, a SoundBank must be regenerated and redeployed to your game (that is, it is not pushed through network communication because of bandwidth considerations).

  • Real-time processing: At runtime, the convolution with the pre-processed impulse response is applied to the incoming signal as well as a series of other runtime digital signal processing operations, many of which can be controlled using RTPCs. The parameters to the right of the impulse response display are all applied at runtime and do not trigger any changes in the impulse response file that will be packaged into SoundBanks.

Integrating the Convolution Reverb inside the Game

The Convolution Reverb impulse response files must be included in a SoundBank for the Effect to function normally inside the game. Refer to Including Plug-in Media in a SoundBank for more information.

Importing Custom Impulse Responses

The Wwise Convolution Reverb plug-in supports impulse responses in the WAV standard format so that you can provide your own impulse response recordings. It can accept WAV files in 16 or 24 bit integer formats. All channel configurations are supported.

The Wwise Convolution Reverb plug-in expects impulse responses recorded with impulsive sounds. When using the sine wave method to record impulse responses, the recordings must first be properly deconvolved (commercial solutions are available to perform this). For optimal results, impulse response WAV files should be edited as follows before loading the impulse response in the Convolution Reverb:

  • Remove unnecessary silence (or very low amplitude noise) at the beginning of the impulse response to avoid undesirable latency.

  • Remove unnecessary silence (or very low amplitude noise) at the end of the sound to avoid undesirable impacts on performance and memory usage. This will also speed up the frequent impulse response conversion performed by Wwise.

  • Remove the dry component spike from the recording.

  • In the highest bit-depth possible (for example, using 24-bit recordings), normalize the waveform to maintain a good signal to noise ratio within the convolution engine.

[Note] Note

It is also possible to sample the impulse response of an electronic reverberation unit or other device instead of sampling a real space.

Multi-channel input signals and impulse responses

The Wwise Convolution Reverb plug-in can import impulse responses of all channel configurations supported by Wwise, even standard configurations with height channels, such as 7.1.4, and ambisonics up to 3rd order. They can be used as they are, if the Channels downmix option is set to As Input. Other downmix options will result in a mono or stereo impulse response. However, input and impulse response configurations need to match to some extent. Invalid combinations result in an "Unsupported channel configuration" error in the Capture Log when the Effect is played back. Here are the rules:

  • In general, the channel configuration type of the input signal and impulse response must be the same. For example, ambisonic sounds must be convolved with ambisonic impulse responses, and standard sounds (stereo, 5.1, and so on) with standard impulse responses.

  • An exception to the rule above is mono (single-channel) sounds or impulse responses, which can be used with any configuration type.

  • Anonymous channel configurations are only supported in Filter mode, not in Reverb mode, except if there is just one channel.

In Reverb mode, the input signal is first downmixed to mono or stereo using the controls in the Input Levels section. A multi-channel convolution is performed, and the result is upmixed back to the original multi-channel configuration using the Output Levels controls. Downmixing to mono or stereo depends on the configuration types of the input and impulse response, and on the input signal's channel count.

  • With standard configurations, input channels are downmixed to stereo, except if there is just one channel (mono or 0.1). The contribution of the center and LFE channels may be controlled with the Input Levels control group. The Input Spread control also determines the amount of crosstalk between the two downmix channels. These two channels are convolved with the respective left-hand side and right-hand side of the impulse response.

  • With ambisonic configurations, the Input Spread is not supported, and thus the input signal is always downmixed to mono. That is, the W channel is taken. It is then convolved with each channel of the impulse response, and each convolved channel is mixed into its respective output channel, followed by additional processing of output Front and Rear levels, and Rear delay. If the input signal and impulse response ambisonic order differs, convolution happens on the lowest order of the two, and no contribution (wet) is added to the higher harmonics.

In Filter mode, a direct convolution is applied between each channel and the impulse response channel(s).

  • With standard configurations, input channels are convolved with the best match found in the impulse response. For example, the back left (BL) input channel would be convolved with the back left impulse response channel if it exists, otherwise with the side left (SL) if it exists, otherwise with the front left (FL).

  • With ambisonic and anonymous configurations, the ith input channel is convolved with the (ith % N) channel of the impulse response, where N is the number of channel of the impulse response. In other words, channels are convolved in order and wrap to the beginning after exhausting all the impulse response's channels.

Memory and CPU Optimizations

Several mechanisms are available to reduce the resource usage (CPU and memory) of the Convolution Reverb:

  • Time-domain truncation: The begin and end markers can be used to trim the length of the impulse response file. Because CPU and memory consumption are directly related to the length of the impulse response, significant optimizations can be achieved by effectively reducing the length of the impulse response. If the impulse response imported was not properly trimmed and contains significant silence before its start and end points, it should be carefully trimmed to avoid using any unnecessary resources.

  • Impulse response downmix options: Multi-channel impulse responses provide a true sensation of space and are desirable in many situations. There may be cases, however, where a mono impulse response may be sufficient. In these cases, just make sure you are either using one of the impulse response channels (left or right) or the downmix of both channels together using the provided downmix option to get a more efficient convolution.

  • Frequency-domain truncation: The threshold parameter can be used to stop processing the convolution at the lowest frequency which falls below the threshold to further reduce the memory and CPU usage of the convolution. For large threshold values, the cutoff frequency detected may change abruptly, leading to artifacts such as frequency sweeping and tail cut. The smoothing parameter can be used to reduce these artifacts by avoiding drastic changes in the impulse response at the expense of reducing the optimization gain. The figures below illustrate the effect of the threshold and smoothing parameters on detected convolution cutoff frequencies.

  • Low-pass filtering: When used in conjunction with the threshold parameter for frequency-domain truncation, you can achieve additional optimizations by low-pass filtering the impulse response with a time varying curve. Because lowpass filtering will make higher frequencies decay more rapidly (which may be desirable to create a darker sounding environment), the frequency truncation algorithm will be able to truncate more aggressively and save additional memory and CPU when heavy low-pass filtering is used.

  • Optimizations ratio display: When performing one of the above optimizations, keep an eye on the optimizations ratio display while validating that the audio differences remain faithful to the original room.

Additional Notes


[Tip] Tip

The complexity of the reverberation (affecting CPU and memory usage) is directly proportional to the length of the converted impulse response file. For very long reverberation times, it may be best to use a parametric reverb solution, such as the Wwise RoomVerb plug-in.


[Tip] Tip

When working exclusively on tweaking reverb Presets, the converted files created behind the scenes when modifying offline parameters may result in an accumulation of converted files that is resolved when closing the project or when generating banks. In this situation it may be a good idea to clear the audio file cache on the Windows platforms (orphans only).


[Tip] Tip

The Convolution Reverb plug-in can be quite intensive for memory and CPU usage. It is a good idea to budget the necessary memory and CPU early on in the design. Make sure that you are familiar with optimization parameters, such as impulse response threshold, truncation, and downmix, because these parameters can all help ensure that the requirements of the plug-in remain acceptable.


[Warning] Warning

The Convolution Reverb plug-in is not compatible with the sound engine low quality setting on the Windows platform.


Wwise Convolution Properties

Interface Element

Description

Wwise Convolution Reverb General Properties

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: true

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.

Wwise Convolution Reverb Offline Settings

These properties are applied offline to the converted IR file. They cannot be modified at runtime.

Impulse Response Settings

Filename

The impulse response file (WAV or AMB) selected to be used for the convolution.

(Browse)

Opens a load dialog box, where you can browse to and select the impulse response file (WAV or AMB) to be used for the convolution.

Channel Config

A list of possible channel configurations for the source, which will impact how the channels are transformed.

Wwise can interpret the source channel configuration according to the following file ordering varieties:

  • SMPTE: By default, Wwise understands the file order to be SMPTE (the Microsoft standard), unless it has an ambisonics header. For 5.1, it would appear as 5.1(L,R,C,LFE,SL,SR).
    However, the default is indicated in the list with Detect [channelconfig], where “channelconfig” indicates the detected configuration. For 5.1, it appears as Detect [5.1(L,R,C,LFE,SL,SR)].
  • FuMa: By default, for Ambisonics Component Ordering, Wwise understands the file order to be FuMa. For ambisonics 1-1, it would appear as 4(Ambisonics) (FuMa).
    However, the default is indicated in the list with Detect [channelconfig], where “channelconfig” indicates the detected configuration. For ambisonics 1-1, it appears as Detect [4(Ambisonics)(FuMa)].
  • Anonymous: The anonymous Channel Config options simply number the channels in order of appearance. So, an ambisonics 1-1 file would just be 1 + 2 + 3 + 4, while a 5.1 file would just be 1 + 2 + 3 + 4 + 5 + 6.
  • Film: Apart from ambisonic files, the alternative file orderings in the list are Film. For 5.1, it appears as 5.1(L,C,R,SL,SR,LFE).
  • AmbiX: For ambisonics, the alternative file orderings in the list are AmbiX (ACN ordering with SN3D normalization). For ambisonics 1-1, it appears as 4(Ambisonics)(AmbiX).

Default value: 0

(Pin/Unpin)

Determines whether a property curve will remain in the graph view when another curve is selected.

When the Pin icon is selected, the curve will be displayed in the graph view whether the curve is selected or not.

(Color block)

Displays the color of the corresponding property curve in the graph view.

Volume

A volume offset to compensate for different recording levels for different impulse responses. When using curve automation this is a powerful tool to create an amplitude time envelope to modify the characteristics of the impulse response. For example, fading in the impulse response can result in a more diffuse reverberation.

Default value: 0
Range: -96.3 to 24
Units: dB

LPF (Low-Pass Filter)

With curve automation, LPF can be used to control the cutoff frequency of a low-pass filtering effect with time-varying characteristics. This can be used to simulate different frequency-dependent damping characteristics. For example, a decaying LPF envelope results in a darker room typical of more absorbing material.

Curve Range: 20 to 20,000
Units: Hz

Automate

Enables automation of the property values over the duration of the original impulse response using user editable curves.

When this option is selected, you can edit the automation curve for the corresponding property in the graph view.

Default value: false

Impulse Response Transformation

IR Stretch

Impulse response resampling factor. This applies a pitch shift effect through resampling (thus affecting its duration). This can be used to simulate smaller or larger spaces by shifting the resonances of the impulse response in frequency. A value of 100 results in no change in duration and frequency. A value of 50 yields a converted impulse response twice as short and with higher resonance frequencies (typical of smaller spaces). A value of 200 yields an impulse response twice as long with lower resonance frequencies (typical of larger spaces).

Default value: 100
Range: 50 to 200

IR Channels

Downmix options available for multi-channel impulse responses:

  • As Input: Uses all channels of the impulse response to perform a multi-channel convolution.
  • Stereo: Uses a stereo downmix of the impulse response to perform a stereo convolution. Ignored with anonymous channel configurations (falls back to As Input).
  • Mixdown: Uses a downmix of all channels of the impulse response to perform a mono convolution with all channels. Anonymous configurations and ambisonics take the first channel / W.
  • Left only: Uses the left channel from the impulse response to perform a mono convolution with all channels. Anonymous configurations and ambisonics take the first channel / W.
  • Right only: Uses the right channel from the impulse response to perform a mono convolution with all channels. Anonymous configurations and ambisonics take the first channel / W.
[Note] Note

This control is only enabled when a multi-channel impulse response file is used.

Default value: As Input

IR Balance

Balance control can be used to pan a stereo impulse response. This may be useful for impulse responses recorded with more emphasis in one channel, which may result in an undesirable steering of the stereo image (wet component) to one side or the other.

Because the balance control produces a re-mix of the stereo impulse response channels with different weightings, it can also be used with the ‘Mixdown’ option of the ‘Channels’ parameter to effectively interpolate between the characteristics of the left and right channels.

[Note] Note

This control is only enabled when a stereo impulse response file is used and when the Channels parameter is set to Stereo or Mixdow

Default value: 0
Range: -100 to 100

Impulse Response Optimization

Threshold

Specifies the level below which energy contained in the impulse response will be discarded to save memory and CPU resources. This threshold is compared against a frequency-specific energy computation that evolves over time in the impulse response and allows for the optimization of storage and processing of the convolution at no or minimal cost in terms of quality losses. A value of -144 dB will result in the full impulse response information being processed while lower values will typically eliminate low-energy higher frequency information to obtain significant optimizations. At higher threshold values (for example, above -50 dB), artifacts due to compression will be more noticeable. It is recommended that you try to set the threshold as high as possible without noticeably affecting the audio quality. For more details, refer to Memory and CPU Optimizations.

Default value: -144
Slider Range: -144 to -30
Units: dB

Smooth

Uses Low-Pass Filtering to smooth the frequency specific truncation points detected based on the threshold parameter. Smoothing can be used to compensate for the artifacts introduced by using high threshold values. The consequence of using high smoothing values is that any optimization gains will be reduced, so it should only be used when necessary. Note that it is sometimes best to set the threshold parameter at a lower value rather than having to use large smoothing parameter values. For more details, refer to Memory and CPU Optimizations.

[Note] Note

This option is only enabled when the threshold parameter is set above -144 dB.

Default value: 0
Slider Range: 0 to 100

IR Information Display

Original

Information about the original impulse response file loaded in the plug-in.

Converted

Information about the converted impulse response, that is, after applying all offline settings to the original impulse response file.

Channels

The number of channels contained in the impulse response file.

Length

The duration (in seconds) of the impulse response file.

Peak

The peak amplitude of all channels of the impulse response file (in dB).

RT60

RT60 is an acoustical measurement used to calculate reverberation time decay. In other words, RT60 is the measurement of the time it takes a signal to decay by 60 dB.

[Tip] Tip

The RT60 value of the original can be used to provide a good starting point in selecting the location for the end marker truncation.

[Note] Note

RT60 is an estimation computed by slope projection, so it is possible that the RT60 time is actually longer than the length of the impulse response itself.

Lower Engine Memory Usage

The estimated amount of runtime memory required in the lower engine memory pool (in kilobytes) for each playing instance using the current effect settings. This estimate is provided assuming surround (5.1) execution of the Effect.

SoundBank Memory Usage

The estimated amount of memory that the converted impulse response file will take (in kilobytes) when packaged into a SoundBank using the current effect settings.

Optimization Ratio Display

Determines the total memory gains (SoundBank and Lower Engine) based on optimization parameters as well as impulse response truncation using the begin and end markers. a 2:1 ratio thus means that only half of the memory is required to perform the convolution with the current settings.

Impulse Response Graphical Displays Controls

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.

X

The coordinate along the X axis of the selected control point.

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 X text box, both control points will move to the left by 5 units.

Y

The coordinate along the Y axis of the selected control point.

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 down by 5 units.

Impulse Response Time-domain Display

(Waveform GraphView)

A graphical representation of the original impulse response is displayed. The wave shown is full-wave rectified and downmixed when the loaded impulse response is multi-channel. Automation curves of the volume and LPF properties can also be shown on the graph. The X axis represents the duration of the original impulse response sound, and the Y axis represents the value of the property to be applied at a specific time.

Only curves with the Automate option selected can be edited in the graph view. You can move points along the curve by clicking and dragging. To add a point, double-click anywhere along the curve and right-click on a section of the curve to select a different curve shape.

The graph view can display several curves simultaneously by selecting multiple properties in the list or by using the pin option.

Begin Marker

Removes the start of the original impulse response from the convolution. It can be used to obtain a different sounding reverberation (for example, a more diffuse reverberation) or to trim the impulse response file to remove unnecessary pre-delay which can result in perceived latency. For more details, refer to Memory and CPU Optimizations.

End Marker

Removes the end of the original impulse response from the convolution. It can be used to obtain a different reverberation sound (for example, shorter reverb time) or to reduce resource usage by performing a shorter convolution. For more details, refer to Memory and CPU Optimizations.

Impulse Response Frequency-domain Display

(EQ GraphView)

In this graphical representation view of the original impulse, you can change the frequency response to customize the tonal characteristics of the impulse response used (graphic equalizer) where the desired frequency response can be simply drawn using curve controls. The X axis represents frequency and the Y axis represents the desired gain to be applied at a specific frequency.

You can move points along the curve by clicking and dragging. To add a point, double-click anywhere along the curve and right-click on a section of the curve to select a different curve shape.

[Note] Note

The response drawn is sampled approximately every 20 Hz. The gain specified at the maximum frequency (20,000 Hz) is extended up to the Nyquist frequency. Note that very sharp transitions may be effectively smoothed by the filtering process to avoid the Gibbs phenomenon because the filtering process has a small transition band and is not exactly brickwall.

IR Enable EQ

Enables/disables use of graphic equalizer.

[Tip] Tip

Disable the graphic equalizer when used with the default curve only (flat line at 0 dB for whole spectrum) to speed up the audio file conversion process.

Default value: false

Wwise Convolution Reverb Runtime Settings

These properties are applied at runtime by the plug-in. They do not affect the converted IR file, so they can be modified in real-time. Most of them can be controlled in-game using RTPCs (refer to Chapter 19, Working with RTPCs for more information).

Reverb Effect Settings

Reverb Type

Determines the type of algorithm used.

Reverb (default) In this mode, multi-channel content is first downmixed using the controls in the Input Levels section. A multi-channel convolution is performed, and the result is upmixed back to the original multi-channel configuration using the Output Levels control. Additional processing such as spread, pre-delay application, and rear channel delay are also performed, using the optimal amount of memory and CPU.

[Tip] Tip

For all reverberation purposes, this mode of operation should be used.

Filter: This mode can be used to apply a direct convolution between each channel and the impulse response channel(s). In this mode, unlike the reverb mode, there is no downmix or upmix performed, and thus the Input/Output Levels are not enabled. With standard multi-channel impulse responses, the left input channels (front, side and/or rear) are convolved with the left impulse response channels while the right input channels are convolved with the right impulse response channels.

[Tip] Tip

This mode can be used to apply a complex frequency response (for example, that of an electronic device, or a calibrated impulse response file to perform brickwall filtering) on all input channels.

Default value: Reverb

Pre Delay

Specifies the time delay between the direct and the reverberated signals.

Default value: 0
Range: 0 to 1000

Rear Delay

Specifies the time delay between the reverberation output in the front and rear channels.

[Warning] Warning

This property has no effect on ambisonic sounds in Filter mode.

Default value: 0
Range: 0 to 200

Input Levels

Center Input Level

Determines the amount of the center channel that will contribute to feed the reverberation algorithm.

Default value: 0
Range: -96.3 to 0
Units: dB

LFE Input Level

Determines the amount of the LFE channel that will contribute to feed the reverberation algorithm.

Default value: -96.3
Range: -96.3 to 0
Units: dB

Input Spread

Determines the amount of crosstalk between the left and right downmix channels prior to reverberation. This can broaden the sense of space of an otherwise strongly correlated impulse response by enlarging the spread of the input downmix.

When a value of zero is used, the input signal is downmixed to mono, and then convolved with each impulse response channel. A value of 180 means that the result of the multi-channel convolution is fed directly to each side.

[Note] Note

On the other hand, with input spread of 180 (maximum), an incoming sound panned to the hard left will be solely convolved with the left channel of the impulse response, which does not make sense in terms of sound propagation.

[Tip] Tip

With multi-channel impulse responses, it is recommended to use a mono or quasi-mono downmix (Input Spread close to 0) in Reverb mode. You should use higher values of Input Spread only with mono impulse responses, because it is the only way to “cheat” and create different signals (thus a sense of space) on the left and right.

[Warning] Warning

This property has no effect on 1.0 (mono) or 1.1 channel sounds.

[Warning] Warning

This property does not apply to Filter mode.

[Warning] Warning

This property is ignored with ambisonic impulse response configurations.

[Note] Note

Input Spread may be used with ambisonic input signals and mono impulse responses.

Default value: 0
Range: 0 to 180

Reverb Levels

Reverb Front Level

Controls the amount of reverberation applied to the front left and right channels. This property control does not affect the center channel, which can be controlled explicitly.

Default value: 0
Range: -96.3 to 0
Units: dB

Reverb Rear Level

Controls the amount of reverberation applied to the rear left and right channels.

Default value: 0
Range: -96.3 to 0
Units: dB

Reverb Center Level

Controls the amount of reverberation applied to the center channel, when present.

Default value: 0
Range: -96.3 to 0
Units: dB

Reverb LFE Level

Controls the amount of reverberation applied to the LFE channel, when present.

Default value: -96.3
Range: -96.3 to 0
Units: dB

Output Levels

Dry Level

Determines the gain factor that is applied to the direct path sound.

[Note] Note

This property has no effect when the reverb is used in an Auxiliary Bus. In this case, the dry signal is defined by the object sending to the Auxiliary Bus.

Default value: -96.3
Range: -96.3 to 0
Units: dB

Reverb Level

Determines the gain factor that is applied to the reverberated signal (reverb tail).

Default value: -20
Range: -96.3 to 0
Units: dB

Output Spread

With standard channel configurations (stereo, 5.1, and so on), Output Spread determines the similarity of the reverberation sent to the left channels (front and/or rear) and right channels (front and/or rear). This can create a stronger/lesser sense of space, by enlarging/narrowing the spread of the reverberation (wet part) of the signal.

When a value of zero is used, the reverberation output to the left and right channels is the same. A value of 180 means that the result of the multi-channel convolution is fed directly to each side.

With ambisonics, the spread is not just lateral (stereo), but instead generalizes to all directions. In effect, it weighs the directional channels compared to the omni channel W.

[Note] Note

This effect is stronger when monitored over headphones because of the absence of cross-talk between speaker signals, which diminishes the Effect.

[Warning] Warning

This property has no effect on 1.0 (mono) or 1.1 channel sounds.

[Warning] Warning

This property does not apply to the Filter mode.

Default value: 180
Range: 0 to 180
Units: °