[4.22][2.00.01] No sound in a packaged build (master bank is not loaded)

Hello there!

I’ve got this issue after upgrading from 4.21 and 1.10.13 to 4.22 and 2.00.01.

  • Master bank name is correct - it’s default.
  • It works fine in editor.
  • Issue happens only in a packaged build.
  • All configuration is the same as it was on 4.21 and previously it worked well.
  • Bank path is specified in “Additional Non-Asset Directories to Package” on packaging settings page.
  • All banks are packaged well and exist in pak file (checked with UnrealPak.exe).
  • FMOD Validation is successful with message “No problems detected”.

This is the log from build:

[2019.06.14-11.14.17:101][  0]LogFMOD: FFMODStudioModule startup
[2019.06.14-11.14.17:101][  0]LogFMOD:  Lib path = '../../../GameProject/Plugins/FMODStudio/Binaries'
[2019.06.14-11.14.17:101][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading ../../../GameProject/Plugins/FMODStudio/Binaries/Win64/fmodL.dll
[2019.06.14-11.14.17:119][  0]LogFMOD: FFMODStudioModule::LoadDll: Loading ../../../GameProject/Plugins/FMODStudio/Binaries/Win64/fmodstudioL.dll
[2019.06.14-11.14.17:190][  0]LogFMOD: Creating runtime Studio System
[2019.06.14-11.14.17:194][  0]LogFMOD: Default sample rate = 48000
[2019.06.14-11.14.17:194][  0]LogFMOD: System sample rate = 48000
[2019.06.14-11.14.17:194][  0]LogFMOD: Matching system sample rate 48000
[2019.06.14-11.14.17:206][  0]LogFMOD: Loading Banks
[2019.06.14-11.14.17:206][  0]LogFMOD: Warning: Master bank (Master.bank) not found.

I started research on this and I see that you’re destroying AssetTable in non-editor build on module startup (FMODStudioModule.cpp, line 508). But commenting this line doesn’t fix the issue. Master bank name is empty at the moment when GetMasterBankPath() is called (FMODStudioModule.cpp, line 1252).

Can you please explain how it was expected to work in a packaged build? Or maybe what’s the reason of such behavior?

Well, after more investigation I found out that UFMODSettings in a packaged build is instantiating without changes made via Project Settings (and .ini files). Seems like a bug with GetDefaultSuboject() in UE4.

We’re using a different path to banks folder, so due to this bug FMOD tries to search banks in wrong directory.

I think you have to add testcase to your QA checklist to check projects with different configurations.

Currently, as a temp solution we specified our settings right in the UFMODSettings, what is not good, but at least it’s working.

Thanks for the feedback, we will look into it.