Version

menu_open
Wwise SDK 2019.1.11
Advanced Sound Engine Integration

Sound Engine Initialization

Note: Before initializing the sound engine itself, the memory manager and streaming manager must be initialized. Please refer to the section Initializing Sound Engine Modules for more information about global initialization.

Initializing the sound engine itself is done by calling the AK::SoundEngine::Init function. The default initialization shown in Initializing the sound engine is copied here for your convenience.

#include <AK/SoundEngine/Common/AkSoundEngine.h> // Sound Engine
(...)
bool InitSoundEngine()
{
(...)
//
// Initialize the sound engine
// Using default initialization parameters
//
if ( AK::SoundEngine::Init( NULL, NULL ) != AK_Success )
{
assert( ! "Could not initialize the Sound Engine." );
return false;
}
return true;
}

The AK::SoundEngine::Init function takes 2 parameters.

First parameter : AkInitSettings * in_pSettings

  • This structure contains platform-independent information to initialize the sound engine.

Second parameter : AkPlatformInitSettings * in_pPlatformSettings

  • This structure contains information specific to each platform to initialize the sound engine.
Caution: Both parameters are considered optional, but we strongly recommend you customize these values to the needs of the game, because the default values often require high memory usage. Depending on the game type, memory settings should be adjusted carefully. Refer to the section Determining an Appropriate Size for Your Memory Pools for more information.

Customizing the Creation Parameters

The AkInitSettings and AkPlatformInitSettings structures must be initialized using the AK::SoundEngine::GetDefaultInitSettings and AK::SoundEngine::GetDefaultPlatformInitSettings functions.

Initializing the structure using these two functions fills the structures with the default parameters. This is useful because:

  • Once initialized, the parameters that need to be modified can easily be changed to fit the needs of the game.
  • Using default parameters ensures code backward compatibility, since later versions of the SDK may add more initialization parameters to the structures.

The following sample code demonstrates how to initialize the two main pools of the sound engine.

#include <AK/SoundEngine/Common/AkSoundEngine.h> // Sound Engine
(...)
bool InitSoundEngine()
{
(...)
//
// Create the Sound Engine
// Using modified initialization parameters
//
AkInitSettings initSettings;
AkPlatformInitSettings platformInitSettings;
initSettings.uDefaultPoolSize = 4 * 1024 * 1024; // 4 MB
initSettings.uMaxNumPaths = 16;
platformInitSettings.uLEngineDefaultPoolSize = 4 * 1024 * 1024; // 4 MB
if ( AK::SoundEngine::Init( &initSettings, &platformInitSettings ) != AK_Success )
{
return false;
}
return true;
}

For more information on choosing memory pool sizes, refer to Optimizing Memory Pools.

AkUInt32 uDefaultPoolSize
Size of the default memory pool, in bytes.
Definition: AkSoundEngine.h:211
AKSOUNDENGINE_API AKRESULT Init(AkInitSettings *in_pSettings, AkPlatformInitSettings *in_pPlatformSettings)
AkUInt32 uMaxNumPaths
Maximum number of paths for positioning.
Definition: AkSoundEngine.h:210
AKSOUNDENGINE_API void GetDefaultInitSettings(AkInitSettings &out_settings)
AkUInt32 uLEngineDefaultPoolSize
Lower Engine default memory pool size.
AKSOUNDENGINE_API void GetDefaultPlatformInitSettings(AkPlatformInitSettings &out_platformSettings)

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