Version
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.
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.
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.
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 |
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. |
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. |
|
|||||
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. |
By default, the Vorbis encoder uses a Seek table granularity (sample frames) of 16384. While seek tables are not always necessary, you must use one 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.
Seeking can fail if the file is too small | |
---|---|
If the file is smaller than or very close to the size of the Seek table granularity, seeking may fail. In such cases, make the Seek table granularity smaller. |
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