Wwise SDK 2023.1.9
|
As a consequence of some of the new features in 2021.1, you will need to pay attention to a few things when migrating to Wwise 2021.1.
Wwise Spatial Audio has standardized the usage of the term transmission loss to define an occlusion factor due to sound transmission through rooms or through geometry, both in the API and in the Authoring tool. Consequently, AkRoomParams::WallOcclusion has been renamed to AkRoomParams::TransmissionLoss
, and AkAcousticSurface::occlusion has been renamed to AkAcousticSurface::transmissionLoss
.
In an effort to simplify the design and implementation of physically plausible sound propagation, all options to enable diffraction and transmission processing have been combined into a single option.
Furthermore, to simplify the setup of Spatial Audio, the following fields of AkSpatialAudioInitSettings
have changed:
AkDiffractionFlags
has been removed with the following substitutions:DiffractionFlags_UseBuiltInParam
is effectively always true. The Diffraction built-in parameter can now be used without explicit configuration.DiffractionFlags_UseObstruction
has been replaced by a boolean, AkSpatialAudioInitSettings::bUseObstruction, with the same logic.DiffractionFlags_CalcEmitterVirtualPosition
has been replaced by a boolean, AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition
, with the same logic.bEnableDirectPathDiffraction
has been renamed to AkSpatialAudioInitSettings::bEnableGeometricDiffractionAndTransmission to provide a more accurate description of the option.fDiffractionShadowAttenFactor
and fDiffractionShadowDegrees
have been removed. These options were complicated to use and not recommended for physically plausible sound rendering.In Wwise versions 2019.2 and prior, the built-in System Audio Device supported up to 7.1 channels of audio. It was necessary to use a variety of plug-ins to go beyond this limit and access the 3d audio output capabilities available on certain platforms.
In Wwise 2021.1, these plug-ins have been incorporated into the System Audio Device. Combined with the newly introduced Audio Objects Bus Configuration, this greatly simplifies the management of 3d audio output.
The following sections serve as a guide to migrate a Wwise project using the now-deprecated 3d audio plug-ins, and benefit from the improvements in 2021.1.
Platform-specific documentation describes the old plug-ins and explains where the equivalent functionality is found in Wwise 2021.1.
Microsoft Spatial Sound Platform Output [deprecated]
A Wwise project using a dual-output strategy to split Spatial and Passthrough mixes should be modified to use a single System Audio Device instead, which can now produce both mixes from a single Audio Object stream.
Instances of the 3d audio mixer plug-ins should be removed and replaced with the use of the Audio Objects Bus Configuration, allowing the Audio Objects to flow to the top bus and into the System Audio Device. Use of the Same as parent Bus Configuration is recommended in order to automatically inherit the Audio Object configuration from the System Audio Device when operating in 3D Audio mode.
Any non-3d mono or stereo stream will be automatically directed to the Passthrough Mix by the System Audio Device. It is possible to force any other type of object to be sent to the Passthrough Mix by setting the Mix Behavior to Mix To Passthrough in the Wwise System Output Settings Metadata.
Use of game-side logic was necessary to detect 3d audio and properly switch between Headphone and Surround mode: for example, binding “Bypass all” and “Passthrough objects” object panner settings.
The System Audio Device now performs this detection and automatically enables Audio Objects and Passthrough Mix based on whether or not 3D audio is active. It is also possible to pick separate configurations for the Main Mix when targeting Headphones or Surround. Finally, any bus can inherit from the Main Mix or Passthrough Mix using the Same as main mix or Same as passthrough mix Bus Configurations.
In the Wwise SDK Integration Demo, there is a new page demonstrating the target setup described in the previous sections.
Refer to: Positioning Demo > 3D Audio Objects and Spatialized Bed.
We announce that Wwise 2021.1 will be the last major version to support the legacy Wwise command line interface, known as WwiseCLI.exe. Minor versions of 2021.1 will also support it, but future major versions won't include it. Refer to Using the Command Line to learn more about the Wwise Console, which replaces the legacy Wwise command line interface.
We announce that Wwise 2021.1 will be the last major version to support the SoundFrame. Minor versions of 2021.1 will also support it, but future major versions won't include it. Refer to Using the Wwise Authoring API (WAAPI) to learn more about the Wwise Authoring API (WAAPI), which replaces the SoundFrame.
Support has been removed for the migration of Wwise projects from versions earlier than 2013.1. It remains possible to migrate such projects to 2021.1 by first migrating to 2019.2.
Calling ak.wwise.core.object.get with an unknown property in the return options used to give no result. It now generates a WAAPI error. Please note that this error will occur when using a property that is not defined in the XML. It will not generate an error when using a known property on an object that does not support it.
The Wwise SDK headers and source now require C++14 to compile properly. See Platform Requirements for a list of supported compilers.
Spread and Focus curves are now evaluated against the real distance between the emitter and listener, while they used to be evaluated against the distance of the emitter-listener vector projected on the plane defined by the listener's top vector.
The old behavior typically increased the spread of 3D sounds passing above or below the listener, and thus helped smooth out their panning on planar speaker configurations (5.1, 7.1, and so on). Unfortunately, this behavior is not very realistic with panning on 3D configurations like binaural stereo or 7.1.4. For example, a 3D sound flying by would suddenly become omnidirectional as it passed over the listener.
In order to evaluate Spread based on the real distance without losing the smoothing effect when panning on planar configurations, a new property called Height Spread has been introduced. It automatically computes a minimal spread based on elevation, if and only if panning occurs on a planar configuration, or based on negative elevation alone if panning occurs on hemispherical configurations, like 7.1.4.
The property is true by default, and is located in the Attenuation Editor. You may opt out of this behavior by deselecting the check box. If there is no attenuation on the sound, you will need to create an Attenuation ShareSet specifically for this purpose, with a flat Output Bus volume curve.
The new, previously-secret platforms have been renamed to PlayStation 5 and Xbox Series X. If you had one of these platforms in your Wwise project already, a migration step will be performed to rename them from the codename they had before to "PS5" and "XboxSeriesX". If your definitions for the platforms, such as name, GeneratedSoundBanks, and ExternalSourceFilePaths, were set to their default values, then they will be automatically renamed as well, where appropriate.
The PlayStation 5 platform, previously referred to by the codename "Pellegrino", is now known as "PS5". The following should be noted in particular:
AK_PS5
.AK::IAkPS5Context
.Microsoft Game Core platforms have been renamed:
The following should be noted in particular:
AK_XBOXSERIESX
.AK_XBOXONEGC
now defines Xbox One Game Core.AK::IAkXboxGCContext
.Microsoft platforms now only support WASAPI. Support for XAudio2 and DirectSound has been discontinued for 2021.1.
AkAudioAPIWindows has been removed. AkPlatformInitSettings::eAudioAPI has been removed for Windows.
AkPlatformInitSettings::eAudioAPI has been removed for XboxOne and XboxOneGC.
AkAudioAPIGX has been removed. AkPlatformInitSettings::eAudioAPI has been removed for XboxGC (previously known as GX).
AK::MemoryMgr::Falign and AK::MemoryMgr::dFalign have been removed. Memory allocated with AK::MemoryMgr::Malign (or dMalign) can now be freed using AK::MemoryMgr::Free (or dFree) or reallocated using AK::MemoryMgr::ReallocAligned or (dReallocAligned).
IAkPluginMemAlloc::Malloc
and IAkPluginMemAlloc::Malign
now take a file name and line number to track memory allocations. Note that this is handled automatically by the AK_PLUGIN_ALLOC
and AK_PLUGIN_ALLOC_ALIGN
macros, and it is recommended to use those macros where appropriate.AK_PLUGIN_REALLOC
and AK_PLUGIN_REALLOC_ALIGN
have been added and call IAkPluginMemAlloc::Realloc
and IAkPluginMemAlloc::ReallocAligned
, respectively.IAkPluginMemAlloc:dMalloc
and IAkPluginMemAlloc::dMalign
have been removed. The debug version of these functions will now be called automatically according to AkMemSettings::uMemoryDebugLevel.The MIDI API functions have seen several additions. These additions are:
IAkGlobalPluginContext::PostMIDIOnEventSync
and IAkGlobalPluginContext::StopMIDIOnEventSync
have been updated to reflect this API change.
Some unused platform-specific alignment defines have been removed:
AK/SoundEngine/Platforms/Android/AkAndroidSoundEngine.h:
AK/SoundEngine/Common/IAkPlugin.h:
IAkPluginContextBase::GetAudioNodeID()
.IAkPluginServiceMixer
(IAkPluginService
of type PluginServiceType_Mixer
).AK/SoundEngine/Common/AkSpeakerConfig.h: AK/SoundEngine/Common/AkCommonDefs.h:
Wwise 2021.1 marks the release of a brand-new Wwise Authoring Plug-in API. This rewritten API addresses some issues enabling many features of the Wwise Authoring application, such as frontend separation and backward compatibility. Dependencies on platform and toolset-specific features have also been greatly reduced. The new API can be found under <Wwise>/SDK/include/AK/Wwise/Plugin
.
A dedicated migration guide covers the main steps in porting your plug-in to the new API. Refer to Migrating to 2021.1 Authoring Plug-in API.
Note: The new C++ API requires a C++17 capable compiler. |
To ease the transition, the previous "original" API is still offered in Wwise 2021.1 at the same location (<Wwise>/SDK/include/AK/Wwise
) and plug-ins built with it are supported by Wwise 2021.1. However, it is now marked as legacy and will not receive updates in future releases of Wwise. All plug-in developers are encouraged to migrate their plug-in to this new API.
The Sound Engine Plug-in API, e.g., <Wwise>/SDK/AK/SoundEngine/Common/IAkPlugin.h
, remains current and is not considered legacy. The new API only covers the Wwise Authoring side of a Wwise plug-in. Refer to Overview of a Plug-in for more details.
The final changes to the original API for Wwise 2021.1 are as follows:
AK::Wwise::IAudioPlugin::NotifyMonitorData
has changed to support a new timestamp argument, provided in milliseconds. This is in conjunction with the new Meter History feature that allows metering at all times.AK::Wwise::IWriteData::WriteUtf16String
and AK::Wwise::IWriteData::WritePascalString
, deprecated in Wwise 2019.2, have now been removed. When interacting with the Wwise Authoring Plug-in API, UTF-8 is now exclusively used for data strings. Note that path string arguments have been migrated from LPCWSTR
to generic AkOSChar
buffers in the new API.The external file boxmodel.wav is no longer needed by the iZotope Trash Box Modeler plug-in and has been removed.
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