Lesson 4

Table of Contents

AK Convolution Reverb

While RoomVerb and Matrix Reverb are parametric algorithms, AK Convolution Reverb uses a prerecorded IR (Impulse Response of a room to produce its reverb).

[Note]

Impulse response (IR): You clap your hands together (impulse), and the sound resonates in the room (response).

The AK Convolution Reverb provides authentic simulation of a space and also offers a range of settings to modify the IR to best fit the acoustics of your game space.

[Note]

If you received a message on opening the Wwise project or in the Profiler’s Capture Log saying “... uses the audio Effect plugin 'AK Convolution Reverb', which is not installed,” then you have not installed the AK Convolution Reverb for your current Wwise installation. To add it, first close Wwise. Then open the Launcher to the Wwise page, select Modify… from the Settings (wrench) list of your Wwise version, and click Next to go to the CHOOSE PLUG-INS page. There you’ll be able to select the AK Convolution Reverb plug-in and click Modify to add it to Wwise.

Let’s now add the AK Convolution Reverb to the Desert aux bus.

  1. In the Project Explorer, expand Master-Mixer Hierarchy > Master Audio Bus > World > AUX > Region_Desert and select the Desert Auxiliary Bus.

  2. In the Effects tab, click Add Effect (+) select Wwise Convolution Reverb > Reverbs > WAG_Desert.

    If you do not have a license for the AK Convolution Reverb, you will now get a notification on it. However, fear not! You can continue following the lesson steps without problems. Let’s test the Convolution Reverb using the Auxiliary Bus for the Player_Pickup Switch Container.

  3. In the Projet Explorer, expand Actor-Mixer Hierarchy > Default Work Unit > World > Player > Player and select the Player_Pickup Switch Container.

  4. Drag the Desert aux bus from the Master-Mixer Hierarchy into the first row, replacing the previously assigned aux bus.

    Make sure there’s only one aux bus assigned.

  5. Click Play to hear the Convolution Reverb applied to the Player_Pickup.

    Let’s now return to the Desert aux bus and optimize it.

  6. In the Desert aux bus Object Tab, open the Effects tab and select the AK Convolution Reverb Effect. The Effect settings appear in the Secondary Editor in the bottom portion of the Object Tab.

In the Effects Editor you’ll see various settings for the Wwise Convolution Reverb, where you’ll mostly concern yourself with the impulse response settings for optimizations.

Just below the Information and statistics window, you’ll find direct memory estimates. The lower engine memory refers to the usage of runtime memory (such as the temporary storage of the reverb tail), whereas the SoundBank memory refers to the size of the impulse response file loaded into memory.

Before optimizing, you should always define your Stretch. This property will stretch the impulse response, so with a higher Stretch value the room will seem larger.

Let’s now perform the necessary optimizations to the Convolution Reverb. First, you’ll apply a Low pass filter over time, which will significantly reduce the Impulse Response memory usage.

  1. In the Properties group box, select the IRLPF and enable Automate.

    You’ll now see a blue line in the Time window. This line defines how much the Impulse Response should be low-passed over time. At the end of the Impulse Response, you will often have more low frequencies. As such, let’s set the right-most control point to the minimum frequency, and the high frequencies will be filtered out gradually.

    [Note]

    Designing a curve over time is called automation/automate.

  2. Select the rightmost control point, and set Y to 20.

    Let’s now set the Low pass to each minimum frequency earlier by adding a new control point.

  3. Double-click the curve, then set the control point to 1.5 (X) and 20 (Y).

    You can also set a certain curve type to improve the transition between curve points.

  4. Right-click the leftmost curve and select Logarithmic (Base 1.41)

    Notice that only the SoundBank memory (size of IR in SoundBank) usage is reduced significantly and not the lower engine memory (runtime memory needed to process the IR). This is because we only reduced the volume of low frequencies over time, but the IR is still of the same length.

    To reduce the length of the IR, you can adjust the End cursor. In the Information and statistics window you’ll see an RT60 value. This indicates when the signal will decay below -60 dB, and so you can use this to set your End cursor.

  5. Drag the End cursor to 1.0, as noted in the RT60 field.

    If you adjust the IR settings, the RT60 value might change again. When you’ve designed a proper impulse response, you can optimize its frequency response using the IR Threshold and Smooth properties.

    [Tip]

    In addition to the IR Threshold and Smooth properties, which we discuss here, the following properties are available:

    • HW Acceleration: Some platforms can accelerate convolution processing using hardware resources, so enabling this option can reduce CPU usage. However, ensure that you are familiar with any potential side effects or additional requirements of hardware acceleration on your chosen platform before you proceed.

    • Input Threshold: Discards high-frequency input sounds if they are below this threshold. The difference in performance is small compared to other factors, so in most cases you don't have to change it.

    • Block Size: Determines the size of blocks that are processed for the convolution effect. As size increases, CPU usage decreases and latency increases.

    For more information on these features, see AK Convolution Reverb.

    A typical IR in the frequency domain will lose some energy over time. Below, you can see a spectrogram of an IR in the frequency domain.

    The IR Threshold property allows you to define how much of the region in black should be encoded in the IR. As seen in the example above, all energy will be lost at around -70 dB.

    As such, you can often safely reduce the IR Threshold significantly and only preserve the relevant signal in the encoded IR. If the IR Threshold induces aliasing (the bumpy staircase curve), you can then use the Smooth property to even out the curve, but the more you smooth, the less the optimization gain you’ll have. Let’s now reduce the IRThreshold to -73 dB and smooth it slightly.

  6. Set the Threshold to -73.

  7. Set the Smooth to 18.

    While all audio sources are packaged in SoundBanks using the referenced Events, the impulse responses are not. Therefore, all impulse responses need to be manually added to a SoundBank. Let’s now add the impulse responses to the All_In_One SoundBank, as that is where it’s used.

  8. From the Layouts menu, select SoundBank.

  9. In the Project Explorer’s ShareSets tab, expand Effects > Default Work Unit > Reverbs and then select the WAG_Desert.

  10. Now drag the WAG_Desert ShareSet into the All_In_One SoundBank.

    Finally, you’ll need to deselect the User-Defined Auxiliary Sends set previously on the Player_Pickup.

  11. From the Layouts menu, select Designer.

  12. In the Project Explorer, expand Actor-Mixer Hierarchy > Default Work Unit > World > Player > Player and select the Player_Pickup Switch Container.

  13. In the User-Defined Auxiliary Sends group box, disable Override parent.

You’ve now learned how to enable and optimize a Wwise Convolution Reverb. You can examine the rest of the Auxiliary Busses to see how it was applied throughout WAG.


Was this page helpful?