Community Q&A

Where Wwise users help each other out!

Audiokinetic's Community Q&A is the forum where Wwise users ask and answer questions within the Wwise community. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

AkSpeakerPan generating Assertion at runtime

+1 vote

We're currently working with a developer on a project using WWise 2017.2.2.6553, they're encountering an issue with the Audio which generations the following assertion in debug:

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1252: first > 0 || second > 0

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1251: uArc < in_uNumArcs

This manifests itself in game as corrupt audio, it seems that the rapid switching of L/R audio channels is triggering the issue.


Has anyone encountered this, is there a work around or a fix in later versions of WWise?



David Smethurst
asked May 9, 2018 in General Discussion by David S. (110 points)

2 Answers

0 votes
Hey David,

Yeah we're getting the same assert in Wwise 2017.2.4.

The assert is being triggered in AddPowerVbap2d, and it's happening right after a while loop that uses floating-point termination.

We haven't managed to fix the problem - but it seems to be related to modifying listener positions. We managed to reduce the number of occurrences by only having one active listener at any given time, and setting that listener using AK::SoundEngine::SetDefaultListeners instead of AK::SoundEngine::AddDefaultListener / AK::SoundEngine::RemoveDefaultListener.

Let me know if you find a fix!
answered Jun 7, 2018 by Oliver S. (300 points)
+1 vote
Hey David,

A colleague of mine managed to track down the issue.

In our case it's caused by one of our pools running out of memory.

When a new listener gets added a call to Ak3DListener::GetListenerMatrix from CAkPath::InitRotationMatrixForListener returns a null pointer, but that data is eventually used by AkSpeakerPan::AddPowerVbap2d.

Hope that helps.
answered Jun 13, 2018 by Oliver S. (300 points)
Thanks for the info. I don't have the source-code, so I can't say if our behavior is the same. We only have one listener though, that is added on initialization.

Your tip about the memory pools was interesting. I tried increasing the size of every pool I found, but couldn't not get the issue to go away. Do you remember specifically which pool were the problem?