Table of Contents

Version Tips and Best Practices

You may want to review the following sections, which provide you with a series of tips and best practices that can help you better manage your platform and language versions throughout the audio development process.

Converting multiple files

You can convert many audio files at once by right-clicking a high-level object in the hierarchy, such as a container, and then selecting Convert from the shortcut menu. If you want to set the Conversion Settings for an entire group of objects, you can right-click the top-level object and select Conversion Settings from the shortcut menu. You can also multi-select objects in the Project Explorer and then define their Conversion Settings or convert them all simultaneously.

Strategies for Conversion Settings

Many times, when a studio develops a game, it examines each platform and then allocates a “budget” for such items as the memory footprint, CPU, and bandwidth. The audio team is given a portion of this budget and it is up to them to manage this budget efficiently for each platform. Depending on the platform, these allowances will be different, so the audio designer needs to understand how to efficiently compensate for these differences and still deliver great sound using the various Conversion Settings available. To see how well you are doing, you can monitor your project's performance in game using the Game Profiler, and adjust the Conversion Settings as needed to stay within your budget. The following sections look at how different settings can affect the sound designer's budget.

Audio formats

Audio formats must also be considered in your budget. It is useful to review the characteristics of the different formats supported by Wwise so that you can make good choices for your project. A general rule is that the less a file is compressed, the less processing power is needed; however, an uncompressed file usually uses more memory or disk space.

The following table provides you with some basic suggestions and information to help you decide how to encode your audio files.

File Format

Compression ratio
(approx)

CPU

Memory

Examples of how these are commonly used

Limitations

PCM

1:1

Very Low

High

Sounds requiring high fidelity.

None.

ADPCM

4:1

Low

Moderate

Ambient sounds and SFX.

Looping on 64 sample boundaries only.

Vorbis

3-40:1

Moderate to High

Moderate to very low

Dialogue, music, ambient sounds, and SFX.

Slightly larger metadata overhead than other formats, so you should avoid it with very small sounds (less than a few tens of milliseconds). Requires a seek table for seeking.

XMA

2-20:1

Low

Moderate to very low

Ambient sounds and SFX that do not require precise looping.

Large metadata overhead. Streamed sounds can only loop across whole files, and there may be gaps of silence at loop points. In-memory sounds support looping at 128 sample boundaries. Not appropriate for sample-accurate playback.

AAC

3-23:1

High (low when using hardware-assisted decoder on iOS)

Moderate to low

Background (not interactive) music.

Very large metadata overhead. Long setup time. Not appropriate for sample-accurate playback.

OpusNX

10-60:1

Very Low*

Moderate to very low

Dialogue, music, ambient sounds, and SFX.

Slightly larger metadata overhead than other formats, so you should avoid it with very small sounds (less than a few tens of milliseconds).

[Note] *CPU Note

The Nintendo Switch version of Opus uses the Switch hardware to decode. This gives a distinct CPU advantage. Compare with the standard Opus below.


[Note] Note

It is not possible to do media conversion for OpusNX for Switch when developing with the Mac version of Wwise. However the standard Opus is available without restriction.

Opus (standard)

10-60:1

High

Moderate to very low

Dialogue, simple music, ambient sounds, and SFX.

Slightly larger metadata overhead than other formats, so you should avoid it with very small sounds (less than a few tens of milliseconds).

Very long setup time after a seek or a loop, especially when streamed from disk. Therefore should be used with caution with Interactive Music, if streamed. Seeking also incur a significant, but temporary, CPU hit.

Using seek tables with the Vorbis encoder

By default, the Vorbis encoder does not use a seek table in order to save disk space. You must, however, use a seek table in the following circumstances:

  • When using the Vorbis encoder in combination with the virtual voice "From Elapsed Time" settings.

  • When using the Vorbis encoder for interactive music files, especially when the sound engine must start reading the file from somewhere other than the beginning.

  • When using Seek actions with the Vorbis encoder.

To enable the seek table for a selection of Vorbis encoded files, do the following:

  • In the Conversion Settings dialog, click Edit for the platform that is using the Vorbis encoder.

  • In the Vorbis Encoder Parameters dialog, specify granularity by selecting a number from the Seek table granularity list.

Smaller seek table granularities require more memory. Sample-accurate seeking (interactive music or seek actions) may incur a CPU spike if granularity is too large, and inefficient I/O usage if it is larger than the disk streaming granularity. As a rule of thumb, pick a seek table size that is smaller or equal to your disk streaming granularity, which is the value used for AkDeviceSettings::uGranularity during initialization.