Community Q&A

Welcome to Audiokinetic’s community-driven Q&A forum. This is the place where Wwise and Strata users help each other out. For direct help from our team, please use the Support Tickets page. To report a bug, use the Bug Report option in the Audiokinetic Launcher. (Note that Bug Reports submitted to the Q&A forum will be rejected. Using our dedicated Bug Report system ensures your report is seen by the right people and has the best chance of being fixed.)

To get the best answers quickly, follow these tips when posting a question:

  • Be Specific: What are you trying to achieve, or what specific issue are you running into?
  • Include Key Details: Include details like your Wwise and game engine versions, operating system, etc.
  • Explain What You've Tried: Let others know what troubleshooting steps you've already taken.
  • Focus on the Facts: Describe the technical facts of your issue. Focusing on the problem helps others find a solution quickly.

0 votes

Hello,

 

We've recently had a problem where AkSoundEngine.GetSourcePlayPosition frequently reports a source position that is less than the previous frame when "in_bExtrapolate" is true. This causes issues with how we synchronize gameplay elements because if we're monitoring the source position and it gives a source position less than our previously recorded one, various systems in our game will fire twice or "rewind" to a previous segment in our game's timelines.

When in_bExtrapolate is false, AkSoundEngine.GetSourcePlayPosition never reports a position less than the previous frame (but now it reports source positions that are frequently the same as the previous frame).

 

Our test code:

private int _prevSample;
private void Update()
{
    AKRESULT akResult = AkSoundEngine.GetSourcePlayPosition(_playingId, out int currentSourcePos, true);

    if (akResult == AKRESULT.AK_Success)
    {
        if (_prevSample <= 0)
        {
            // Do nothing, the song just started, looped, or doesn't support SourcePlayPosition
        }
        else if (_prevSample > currentSourcePos)
        {
            Debug.LogError("It went backwards? " + currentSourcePos + " @ " + Time.time);
        }

        _prevSample = currentSourcePos;
    }
}

 

Any ideas on how to fix this?

We are using:
Unity 2020.1.10f on Windows

Wwise 2019.2.6.7381

Thanks.

 

EDIT: Did some more testing, found out the issue happens when the Application's target refresh rate is above 90 Hz. Very strange. At 100 Hz, Wwise reports source positions that are equal to previous frames, and after 120 Hz, we start seeing the issues mentioned above.

EDIT2: Submitted a bug report as this seems like a serious issue. More and more devices are capable of > 60 Hz, so it's important that this gets fixed.

in General Discussion by Navid K. (100 points)
edited by Navid K.

Please sign-in or register to answer this question.

...