FMOD, Unity and Steam Audio integration issue

Hello! I’m using FMOD 2.03.06, Unity 2022.2.12 and Steam Audio 4.7.0. OS: Windows 11. Currently developing a small VR game, testing it on Meta Quest 3.

I downloaded everything and integrated the Steam Audio plugin into FMOD and Unity (so that FMOD was installed before the Steam Audio). In FMOD settings “phonon_fmod“ was written as a Dynamic Plugin for Editor and Default. In Steam Audio settings FMOD Studio was chosen as the Audio Engine.
FMOD project is located in the Unity project directory, in FMOD project’s folder I have the Plugins folder with phonon.dll, phonon_fmod.dll and phonon_fmod.plugin.js.

In Unity’s Assets/Plugins I have FMOD and SteamAudio, the second was installed through adding it as a custom package.The path of phonon_fmod is:

Assets\Plugins\FMOD\platforms\win\lib\x86_64
However, after pressing “Play“ it was is x86 folder (the editor threw some errors of phonon_fmod being absent from this x86_64 folder), I cut it and placed it in the correct folder.

Plugin is visible in FMOD, however by default, when Steam Audio Spatializer is applied, the sound plays more to the left.

In Unity, I got this error from the start after pressing play:

NullReferenceException: Object reference not set to an instance of an object
SteamAudio.SteamAudioManager.OnApplicationStart (SteamAudio.ManagerInitReason reason) (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:298)
SteamAudio.SteamAudioManager.Initialize (SteamAudio.ManagerInitReason reason) (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:683)
SteamAudio.SteamAudioManager.AutoInitialize () (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:1560)

And then:

NullReferenceException: Object reference not set to an instance of an object
SteamAudio.SteamAudioManager.NotifyAudioListenerChanged () (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:491)
SteamAudio.SteamAudioManager.OnSceneLoaded (UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode loadSceneMode) (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:466)
UnityEngine.SceneManagement.SceneManager.Internal_SceneLoaded (UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode mode) (at <61c05f8d81804e929ff4198c5bcc7a62>:0)

**When pressing the “Install FMOD Studio Plugin Files“ button in the Steam Audio tab in the editor I have this error in the terminal:
**
NullReferenceException: Object reference not set to an instance of an object
SteamAudio.SteamAudioManager.InstallFMODStudioPluginFiles () (at Assets/Plugins/SteamAudio/Scripts/Runtime/SteamAudioManager.cs:1117)

I also tried integrating Meta XR SDK for FMOD, but even though I installed everything correctly, I still faced similar issues: no sound in game from events that had the Meta XR plugin and similar issues when trying to back the scene: NullReference errors, as far as I remember

Lastly, the event with the Steam Audio Spatializer did not produce any sound in Unity, all other FMOD events without it played as usual.

Would appreciate any help….

Thank you for the information.

Just to confirm the order Unity components being added:

  1. fmodstudio20306.unitypackage
    • Run through the Set up wizard
  2. SteamAudio.unitypackage
  3. SteamAudioFMODStudio.unitypackage

Could I please grab a screenshot of your FMOD integration settings:


And the Steam Audio settings:

I noticed this as well, I will make a task to investigate the issue.

Thank you for the detail and hopefully if is just an issue with the order things were installed.

Hello!

And for FMOD in Dynamic Plugins it was indeed “phonon_fmod”

Yes, the order of downloads should be correct. At first I had FMOD, and then I downloaded the packages (for Unity: both SteamAudio and SteamAudioFMODStudio, and then dlls for FMOD itself).

I no longer experience the first two errors after initialising (I redownloaded SteamAudio and SteamAudioFMODStudio), but I still have the one after clicking on “Install FMOD Studio Plugin Files“. When I add the default SteamAudio Spatialiser, my sound plays in 2d with the sound shifted to the left, even though the fmod event emitter is attached to an object. Steam Audio Manager script is placed after initalising FMOD in the Project Settings. Placing the Steam Audio Source on an object with the FMOD Event Emitter 3D with nothing enabled makes Unity crash every single time.

Hi,

Sorry for the late response. Since Connor is away at the moment, I’ll see if there’s anything I can help with.

I’m seeing the same error message on my side. It looks like the Steam Audio Unity plugin is trying to read the FMOD settings but fails. I’d recommend reaching out to the Steam Audio team so they can investigate this on their end. Alternatively, as mentioned in the Steam Audio documentation, you can manually drag the .dll files into your FMOD Studio project’s plugins directory instead of using the “Install FMOD Studio Plugin Files” menu option.

Could you please share a screenshot of the event’s master track in FMOD Studio? On my side, I only added the Steam Audio Spatialiser to the event’s master track and the spatialization sounds correct on the Quest 3.

Unfortunately I wasn’t able to reproduce this issue here. Could you please elaborate a bit more on what you mean by “with nothing enabled”? For example, which checkboxes or options under the Steam Audio Source component are disabled when the crash happens?

Here’s the event’s master track, in my headphones/Quest 3 the event plays on the left.

When I play the 3D event attached to an instance in-game, the sound also sounds incorrectly - the sound panning works when moving around with joysticks, but no change to panning occurs when turning my head with Quest 3 on. Changing the event format (Mono/Stereo) did not help. Everything works correctly when I use the default FMOD Spatialiser.

Adding a Steam Audio Listener to the camera does not make the game crash.

But when I add a default Steam Audio Source with nothing marked (Occlusion, Reflections, Pathing are not used) to the instance, where my FMOD Event is located, then it immediately crashes.

Thank you for the extra info!

Just to confirm, does the sound stuck to the left issue happen when you are using Quest Link in the editor, or in a packaged build?

I have been able to reproduce the crash on my side as well, and it seems to be related to Unity Audio being disabled. The crash still occurs even if I strip out all FMOD related content from the project.

As a workaround, could you please try going to Edit → Project Settings → Audio and unticking Disable Unity Audio?

With Unity Audio enabled, the crash no longer occurs on my end.

The sound that comes after the Steam Audio Spatialiser sounds… incorrectly starting from FMOD Studio itself, it’s shifted to the left by default. When I start moving with my joystick, the panning kind of changes during the movement. When moving my head with the Quest 3 in the scene, the 3D event plays sort of statically in terms of panning? So that it keeps the (latest) panning of that sound event and does not update it in accordance with Quest 3. The volume changes.

Perhaps the issue starts from FMOD + Steam Audio and then persists in Unity?

I enabled the Unity Audio, but the engine keeps crashing. Very strange.

Perhaps I should try reinstalling Steam Audio again, but this time trying some earlier version…

That is strange. I tested using the same version on my side, and didn’t experience a crash any more.

Trying an earlier Steam Audio version is definitely worth a try.

Thanks for the additional details! I was able to reproduce the “sound stuck on the left” issue as well.

I have discussed this internally with the dev team, and since the Steam Audio Spatializer is a third-party plugin, we unfortunately have no control over the code. Any bugs inside the spatializer would need to be reported directly to Valve.