Version
(See the Wwise Convolution Reverb General 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 | |
---|---|
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.
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.
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 | |
---|---|
It is also possible to sample the impulse response of an electronic reverberation unit or other device instead of sampling a real space. |
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.
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.
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
The Convolution Reverb plug-in is not compatible with the sound engine low quality setting on the Windows platform. |
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. |
|||||
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.
|
|||||
|
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. |
|||||
Effect Settings |
These properties are applied offline to the converted IR file. They cannot be modified at runtime.
Interface Element |
Description |
||||||
---|---|---|---|---|---|---|---|
Impulse Response Settings | |||||||
(Browse) |
Opens a load dialog box, where you can browse to and select the impulse response file (WAV) to be used for the convolution. |
||||||
(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 |
||||||
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 |
||||||
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. |
||||||
Impulse Response Transformation | |||||||
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 |
||||||
Channels |
Downmix options available for multi-channel impulse responses:
Default value: As Input |
||||||
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.
Default value: 0 (Center) |
||||||
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 |
||||||
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.
Default value: 0 |
||||||
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.
|
||||||
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.
|
||||||
Enable EQ |
Enables/disables use of graphic equalizer.
Default value: Off |
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 18, Working with RTPCs for more information).
Interface Element |
Description |
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Reverb Effect Settings | |||||||||||||||||||
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.
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.
|
||||||||||||||||||
Pre Delay |
Specifies the time delay between the direct and the reverberated signals.
Default value: 0 |
||||||||||||||||||
Rear Delay |
Specifies the time delay between the reverberation output in the front and rear channels.
Default value: 0 |
||||||||||||||||||
Input Levels | |||||||||||||||||||
Center |
Determines the amount of the center channel that will contribute to feed the reverberation algorithm.
Default value: 0 |
||||||||||||||||||
LFE |
Determines the amount of the LFE channel that will contribute to feed the reverberation algorithm.
Default value: -96 |
||||||||||||||||||
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.
Default value: 180 Range: 0 to 180 Units: Degrees |
||||||||||||||||||
Reverb Levels | |||||||||||||||||||
Front |
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 |
||||||||||||||||||
Rear |
Controls the amount of reverberation applied to the rear left and right channels.
Default value: 0 |
||||||||||||||||||
Center |
Controls the amount of reverberation applied to the center channel, when present.
Default value: 0 |
||||||||||||||||||
LFE |
Controls the amount of reverberation applied to the LFE channel, when present.
Default value: -96 |
||||||||||||||||||
Output Levels | |||||||||||||||||||
Dry Levels |
Determines the gain factor that is applied to the direct path sound.
Default value: 0
|
||||||||||||||||||
Reverb Level |
Determines the gain factor that is applied to the reverberated signal (reverb tail).
Default value: 0 |
||||||||||||||||||
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.
Default value: 180 Range: 0 to 180 Units: Degrees |
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise