Internal error in CoreSystem / AudioSystem split in order to play sounds on 2 different sound cards

we’re a small company mixing live-action and videogames using Unity engine, and we’re making a transition from Wwise to FMod as our main sound engine. Right now we’ve successfully switched our banks to FMOD 2.01 and have done much of the work easily, but we’re encountering a big “no-go” problem :
in our games, we use two audio systems to output sounds, using two different soundcards. One is used for all in-game sounds and outputs in a 7.1 speakers system, the other is used only for Voice messages, with only one speaker technically designed to output voices.
All our games are developed and played on a PC-Windows-64 bits setting. When we were using Wwise, we could use the “voice communication channel” provided by Windows to directly setup our sounds to be outputted on our Voice speaker, by setting its audio card as “default communication device” and tagging its Bus in the Wwise Audiobank as a Communication bus.
We tried to use the equivalent system in FMod 2.02 called “Port Buses”, but it appears that no Port Type has been set to use the voice communication channel on PC-Windows right now. We then tried to split the CoreSystem and AudioSystem in the Unity Integration of FMod 2.01 (our actual FMod version) as said in several posts on this forum, but suffered several internal errors of bank loading and we’re struggling for an happy ending from now on…
Right now we’re wondering if we should continue our transition or stop it. We transformed the CoreSystem and AudioSystem singletons in an array of CoreSystems and AudioSystems, and added the possibility to load sound banks on specific elements of this array, so that we load Voice sound banks on the “Voice” Core / Audio systems, and the Game sound banks on the “Main” Core / Audio systems, each set on a different audio card with the SetPortIndex() function. But it appears that when we call the FMod PlayEvent() internal function, its result is “Event-Not-Found”. Plus, the UnloadSoundBanks() function returns null and doesn’t unload it. Can you help us with that ? Do you have any example of successful multiple systems modifications ?


As you’ve discovered the Windows output doesn’t support ports, so it’s not possible to address both the 7.1 speaker setup and headphones using the same FMOD::System. Additionally running multiple Systems with Unity is not a workflow that we support, so I cannot provide any examples for you.

I see you’ve contacted us by email as well, I will follow up with you further there.