Fmod banks don't load async in Unity

I’m loading Fmod banks manually when loading a level. The problem is that loading is not async and consumes 700ms in one frame causing the game to drop FPS significantly. This is my code for loading the banks async that doesn’t work as expected. Could someone please help what can be done to get this fixed:

using System.Collections;
using System.Collections.Generic;
using FMODUnity;
using UnityEngine;

public class FmodBankLoader : MonoBehaviour
{
    [BankRef] [SerializeField] private List<string> banks;

    void Start()
    {
        StartCoroutine(LoadGameAudioAsync());
    }

    IEnumerator LoadGameAudioAsync()
    {
        // Iterate all the Studio Banks and start them loading in the background
        // including the audio sample data
        foreach (var bank in banks)
        {
            RuntimeManager.LoadBank(bank, true);
        }

        // Keep yielding the co-routine until all the Bank loading is done
        while (RuntimeManager.AnyBankLoading())
        {
            yield return null;
        }
    }

    public List<string> GetBanks()
    {
        return banks;
    }
}

Bump! I really wish to fix this. Anyone?

What versions of FMOD and Unity are you using?
Is this occurring in the editor or when built for a specific platform?
Are you able to share any log files?

We are using Unity 2019.1.1f1 and Fmod integration 2.01.04.
This happens in Editor on Windows and Mac.
Unity console log doesn’t really provide much. Let me know what you need and I can get it :slight_smile:

FMOD will load banks async by default, your LoadGameAudioAsync loops is actually blocking the thread until all the banks are finished loading and causing the 700ms delay. You can just call RuntimeManager.LoadBank from Start and FMOD will load the banks asynchronously from it’s own thread.

Thank you. I will try that and let you know the results.

If the intended use is to call RuntimeManager.LoadBank from Start directly, why do the scripting examples in the documentation show to call it as a coroutine as shown above?
https://www.fmod.com/resources/documentation-unity?version=2.1&page=examples-async-loading.html