Wwise SDK 2023.1.4
Important Migration Notes 2022.1

As a consequence of some of the new features in 2022.1, you will need to pay attention to a few things when migrating to Wwise 2022.1.

WAAPI Changes That Affect Backward Compatibility

The Capture Log now reports Music Playlist callbacks in addition to transitions between music objects. These two items are now grouped under the Interactive Music name in the Profiler Settings. To reflect this change:

  • ak.wwise.core.profiler.enableProfilerData : "musicTransitions" has been renamed "interactiveMusic".
  • ak.wwise.core.profiler.captureLog.itemAdded : "MusicTransitions" has been renamed "InteractiveMusic".
  • ak.wwise.core.profiler.enableProfilerData : "inactiveGameSyncs" has been renamed "gameSyncs".
  • Fixed typo in property "IsZeroLantency" of Wwise Object MusicTrack and Sound: "IsZeroLantency" has been renamed "IsZeroLatency".
  • Function ak.wwise.ui.captureScreen argument "viewSyncGroup" has been renamed "viewSelectionChannel".
  • accessor originalWavFilePath on Wwise Object Sound has been renamed "originalFilePath".
  • accessor convertedWemFilePath on Wwise Object Sound has been renamed "convertedFilePath".
  • ak.wwise.core.remote.getAvailableConsoles : "notificationPort" has been removed.
  • Relating to ak.wwise.ui.commands.execute , the following commands have been renamed or removed:
    • "ShowUserProjectSettings" has been renamed "ShowDefaultObjectValues".
    • "ShowPropertyHelp" has been renamed "ShowContextualHelp".
    • "FindInProjectExplorerSyncGroup1" has been renamed "FindInProjectExplorerSelectionChannel1".
    • "FindInProjectExplorerSyncGroup2" has been renamed "FindInProjectExplorerSelectionChannel2".
    • "FindInProjectExplorerSyncGroup3" has been renamed "FindInProjectExplorerSelectionChannel3".
    • "FindInProjectExplorerSyncGroup4" has been renamed "FindInProjectExplorerSelectionChannel4".
    • "FindInProjectExplorerNoSyncGroup" has been renamed "FindInProjectExplorerNewPinnedView".
    • "ProfilerFilterSetKeyboardFocusToCurrent" has been removed.

Mixer Plug-ins End-of-Life Announcement

We announce that Wwise 2022.1 will be the last major version to support Mixer Plug-ins. Minor versions of 2022.1 will also support them, but future major versions will not. Refer to Understanding Object-Based Audio to learn about the pipeline that makes Mixer plug-ins obsolete.

Removal of SoundFrame

SoundFrame is no longer included in Wwise. Wwise 2021.1 was the last major version to support the SoundFrame. Refer to Using the Wwise Authoring API (WAAPI) to learn more about the Wwise Authoring API (WAAPI), which replaces the SoundFrame.

Removal of Spatial Audio Initialization Settings

Two Spatial Audio Initialization Settings are removed in 2022.1: bUseObstruction and bUseOcclusion. In earlier versions of Wwise, these parameters were set to true by default. Diffraction and transmission loss values were used with the project obstruction and occlusion curves respectively. You could set bUseObstruction and/or bUseOcclusion to false to disable the use of these curves, using built-in parameters with RPTCs exclusively instead.

In Wwise 2022.1, it's now possible to create curves per sound, driven by diffraction and transmission loss. These curves can use the project obstruction and occlusion curves like before, or they can be customized or disabled individually. These changes render the bUseObstruction and bUseOcclusion parameters obsolete. They are therefore removed.

If you used to set one or both of these parameters to false, you might want to manually disable the curves driven by diffraction and/or transmission for each sound that was previously affected by diffraction and/or transmission. You can disable these curves in the Attenuation ShareSet applied to the sound by setting Curve to None.

Spatial Audio Geometry Instances

In 2022.1, Spatial Audio supports Geometry Instances. A Geometry Instance allows the user to create multiple copies of a Geometry Set, each with its own position, scale, and orientation. Calling AK::SpatialAudio::SetGeometry passes the geometry data to Wwise Spatial Audio, but it is no longer added to the scene without creating a Geometry Instance. It is necessary to call to AK::SpatialAudio::SetGeometryInstance to create a Geometry Instance for each Geometry Set that is to be added to the scene for acoustic simulation.

Removal of Legacy Wwise Command Line Interface (WwiseCLI)

Wwise 2022.1 does not provide the legacy Wwise command line interface, known as WwiseCLI.exe. Refer to Using the Command Line to learn more about the Wwise Console, which has replaced the legacy Wwise command line interface.

Removal of a Reflect Plug-in Curve

The Reflect plug-in's Distance Attenuation (Emitter vs. Listener) curve has been removed. Previously, this curve allowed you to define an attenuation of the Reflect plug-in's output volume dependent on the distance between the listener and emitter game objects. Then and now, the same behavior could be achieved using the distance-driven volume attenuation curve of an Attenuation ShareSet placed on the Reflect Auxiliary Bus. For this reason, when migrating a project to Wwise 2022.1, a new Attenuation ShareSet is automatically created for any non-flat Distance Attenuation (Emitter vs. Listener) curve on a Reflect Effect.

Each newly created Attenuation ShareSet is added to the corresponding Reflect Auxiliary Bus if no other attenuation was set prior to the migration. This ensures that the Reflect Effect behaves the same way as before. If a Reflect Auxiliary Bus has more than one Reflect Effect with such a curve, only one of the new Attenuation ShareSets is added.

With this new design, there is a clear distinction between the attenuation curves, which are driven by the position of an emitter, and the Reflect effect curves, which which are driven by the position of an image source.

Removal of CopyStreamedFiles.exe

CopyStreamedFiles.exe, a tool previously supplied in the Samples directory, has been removed. The tool was used as a post-SoundBank generation step to copy loose/streamed media files to the output folder. The copying of media files has been integrated into the SoundBank generation process and is configured via the SoundBanks project setting Copy Loose/Streamed Media. Wwise will migrate the use of CopyStreamedFiles.exe to the newly integrated copying system.

Note: CopyStreamedFiles.exe required that the SoundBank generation process also create SoundBank metadata file SoundBanksInfo.xml. This file is no longer required.

Changes to AK::Wwise::ISourceControl

Wwise now offers source control updates for generated files. To accomplish this, the following changes were introduced in the source control interface.

New No-UI Commands

New ui-free commands have been added to AK::Wwise::ISourceControl::PluginInfo:

  • m_dwAddNoUICommandID
  • m_dwRevertNoUICommandID
  • m_dwCheckOutNoUICommandID

A new operation type has been added to AK::Wwise::ISourceControl::OperationMenuType for the generated files:

  • OperationMenuType_Generated

The sample source control plug-ins have been updated to implement these commands.

New Interface Methods

New methods have been added to the interface:

The sample source control plug-ins have been updated to implement these commands.

Improved Performance

File Manager now offers a better user experience, especially with large lists of files. To speed up the update of the rows, a new function has been added to fetch both the status and the icon of the file in a single call:

Additionally, most of the GetFileStatus and GetFileStatusIcons calls are now asynchronous, leaving the user free to interact with the interface while the source control fetches the information.

Changes in Source Control Containers

Some functions of source control containers invalidate the internal iterator (adding, inserting, and removing values, as well as GetHeadPosition and GetTailPosition). Only one AkPos per container can be valid at a time.

Containers are now implemented with standard ones, not with MFC's anymore.

New Media File Layout

To address the growing number of files per output directory, Wwise has moved the media files to a new sub-folder named Media. The same folder hierarchy exists in this folder as in the root folder. That is, non-localized media are placed in the root, and localized media are separated into sub-folders. Note that the sample file resolver supplied with Wwise assumes this new file layout. If the SoundBanks project setting Copy Loose/Streamed Media is enabled, then the SoundBank generation process copies media files to the correct location.

To further reduce the number of media files per folder, Wwise offers the option to divide each of the folders described above. Media files are placed in a sub-folder using the first two characters of the file's name. For example, media file 1234.wem will be placed in the sub-folder /12. This new sub-foldering is enabled via the SoundBanks project setting Sub-Folders for Generated Files. To make use of sub-foldering while using the sample file resolver supplied with Wwise, use the method CAkMultipleFileLocation::SetUseSubfoldering().

Refer to SoundBank Output Folder Layout for details.

New Parameter AkBankType for Bank Load/Unload Functions

Wwise now offers auto-defined SoundBanks. These new SoundBanks could have names/IDs that conflict with user-defined SoundBanks. The new parameter AkBankType has been introduced in all Bank Load/Unload functions to scope the interpretation of AkBankID. The new parameter is set to the default value of AkBankType_User for user-defined SoundBanks. (Different values are used to specify auto-defined SoundBanks.) Most Bank Load/Unload function calls do not require any changes on your part.

Changes to SoundBank Metadata Files

The content and format of SoundBank metadata files has been reworked. This affects the all-SoundBank file, SoundBankInfo.(json,xml), per-SoundBank files, as well as the contents of the WAAPI function ak.wwise.core.soundbank.generated. Any custom tools that make use of this information will have to be adjusted.

These changes were made in conjunction with the introduction of auto-defined SoundBanks. Refer to Automatically Defining SoundBanks for details.

Redesign of iOS Interruption Handling

iOS interruption handling has been redesigned to be more in line with Apple Human Interface Guidelines. Refer to the platform-specific section for details.

Large World Coordinates for Game Objects

The Wwise sound engine now supports large world coordinates for Game Objects by moving to double-precision values for positioning. This allows the positioning of sounds to behave predictably, even with worlds that are billions of units in size. APIs dealing with Game Object positions have been updated to use two new types, AkWorldTransform and AkVector64, which provide the additional data. This also includes changing the typedefs for AkSoundPosition and AkListenerPosition from AkTransform to AkWorldTransform.

Implicit conversion functions are provided to allow for smooth compatibility in most existing code, from AkTransform to AkWorldTransform, and from AkVector to AkVector64. However, in order to preserve the accuracy of the new types as much as possible, implicit conversion functions from AkWorldTransform to AkTransform, and AkVector64 to AkVector, have not been provided. As a result, some code using these types might encounter compilation errors or warnings due to unsupported conversions, and might have to be adjusted appropriately. Explicit conversion functions are available, such as AK::ConvertAkVector64ToAkVector and AK::ConvertAkWorldTransformToAkTransform.

Crankcase REV 2 Runtime Update

The Crankcase REV 2 plug-in has been updated to the v2.68 runtime. The output signal is slightly different than the previous version due to an improvement in the ADPCM Decoder.

Removal of SoundSeed Impact

The Wwise SoundSeed Impact Effect plug-in has been removed. Consider replacing it with the Impacter source plug-in.

Removal of the AAC Codec

Support for the AAC codec has been removed from Wwise. Existing Wwise projects using the AAC format in their Conversion Settings will be automatically modified to use Vorbis instead. Old media assets must be reconverted to a compatible software codec to function.

AkArray Move Policy

AkArray::Insert and AkArray::Erase now use memmove when TMovePolicy::IsTrivial() is true. That is, both functions now assume that a trivial move policy means that items are trivially relocatable. This assumption was already made in the case of AkArray::GrowArray.

Changes to the Plug-in API

AK::Wwise::Plugin::DataWriter::WriteString function does not add 4 bytes at the end of the string anymore.

Loudness Changes

The following changes to audio processing algorithms introduce level differences that might affect the mix of existing projects.

Meter, Compressor, and Expander

The Peak and RMS computation in multi-channel configurations (including Ambisonics and Audio Objects) has been changed: the results are now more consistent across channel configurations for a given source signal, and closer to the computations made by the Loudness Meter.

Balance-Fade Speaker Panning

Balance-Fade Speaker Panning loudness now matches that of Direct Assignment, which means it is louder than before for sounds with a channel count greater than one. This corrects the evaluated loudness of Audio Objects with Speaker Panning in the Meter, Compressor, and Expander.

AK Convolution

The gain adjustment performed when downmixing the input signal of an AK Convolution Effect plug-in has been changed: the downmixed signal is now louder when the input is a standard configuration with height channels (such as 7.1.4), and more consistent with the result in other channel configurations.

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise