FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE and FMOD_INIT_MIX_FROM_UPDATE

FMOD 2.03.14 with custom engine integration

I’ve setup fmod integration, got everything to build. Audio works on windows, mac os, android but not ios. On ios i get no errors, everything inits ok.

Initially I added the FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE flag because i was experiencing some slow loading of large number of banks (~100), I guess due to the internal thread ticking. After I set the flag, bank loading was “instant”. After that point, we started testing on devices and figured out that ios is not working.

Create/play event “works”, status is playing, but time position stays on 0 all the time. I pooled internal DSP clock and that one also stays at 0 all the time. After some testing I added FMOD_INIT_MIX_FROM_UPDATE and this made things “go”. Did I miss anything, is this intentional?

Sorry for the delayed response!

It’s not intentional that synchronous update requires FMOD_INIT_MIX_FROM_UPDATE, so it’s likely that something is blocking the mixer in general, or processing for the events in question. Can I get you to use Debug_Initialize to set your debug flags to FMOD_DEBUG_LEVEL_LOG, and provide me with a log from when the issue is occurring? Also, I’d recommend using Studio::Bank::getLoadingState to ensure that your banks are being loaded as expected, since changing to synchronous update shouldn’t immediately resolve bank loading issues.

Hi,

I’ve uploaded app-log-ios-26.txt
audio works on on older devices/OS (16,17) while later (18,26) don’t produce any audible output.

I see some:
Insufficient buffer size detected logs

Thanks for the log!

Historically, the “insufficient buffer size” warning on iOS generally indicates that the buffer size expected by iOS is larger than what FMOD is producing, which the log appears to indicate. This had commonly occurred when suspending the application due to iOS hardware swapping from the smaller the FMOD application is using to a larger buffer, and failing to swap back when resuming. I suspect FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE may be causing the same problem when you’re not using FMOD_INIT_MIX_FROM_UPDATE.

I’d recommend increasing FMOD’s DSP Buffer Size (which has usually been from 512 → 1024) and seeing whether it resolves the issue.