Version

menu_open

How to Create Wwise Sound Engine Audio Device Plug-ins (Sink Plug-ins)

Audio Device Plug-in Interface Implementation

Audio device plug-ins are the endpoints of the audio processing chain. Natural Audio devices are the OS sound systems, but there can be more possible outputs.

Writing audio device plug-ins consists of implementing the AK::IAkSinkPlugin interface.

Only the functions specific to this interface are covered there. Refer to How to Create Wwise Sound Engine Plug-ins, for information about interface components shared with other plug-in types (AK::IAkPlugin interface). Also refer to the provided AkSink plug-in for details (Samples).

Note.gif
Note: For now, the only audio device that is available to be replaced as a plug-in is the Main output audio device. Your plug-in will need to be a proper replacement for the Main Audio device. Secondary outputs are not yet admissible for plug-in replacements.

Important Notes for Implementing Audio Device Plugins

  • When a plug-in is used in Wwise, parameter changes are sent down to the parameter node whether or not the parameter supports RTPCs. This allows the plugin to support runtime value changes of non-RTPC values if desired for Wwise usage. If you do not want your plugin to support this, you should make a copy of the parameter values at initialization time to ensure they remain the same throughout the plug-in's duration.

Testing your Audio Device plug-in

After implementing the Wwise part of the plug-in and the sound engine part, here are the steps to test your new plug-in.

  • In your Wwise Project, create an Audio Device Shareset using your new plug-in. Give the ShareSet a unique name.
  • Generate you Banks.
  • Make sure you register your new plug-in in sound engine initialization Wwise Sound Engine Plug-ins Overview
  • Specify your audio device to be used in the initialization parameters of the sound engine.

For example:

    AkInitSettings initSettings;
    AkPlatformInitSettings platformInitSettings;
    AK::SoundEngine::GetDefaultInitSettings( initSettings );
    AK::SoundEngine::GetDefaultPlatformInitSettings( platformInitSettings );

    initSettings.settingsMainOutput.audioDeviceShareset = AK::SoundEngine::GetIDFromString("YourNewAudioDeviceSharesetNameHere");
    
    AK::SoundEngine::Init( &initSettings, &platformInitSettings );

For more information, refer to the following sections:


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