Dolby Atmos output to home theatre from Unity

Hi there,
Hi there,

I’d like to ask the community about outputting Dolby Atmos to a home theatre system from a game built in Unity.

So far I have set everything up in FMOD and Windows - FMOD is outputting 7.1.2 to my AVR. This is all working fine.

However when I run the game Unity only outputs L, R and LFE (channels 1, 2 and 4).

My AVR says it is receiving Dolby Atmos but it clearly isn’t.

I’m fairly confident I have FMOD and Windows set up correctly, but feel I am missing some settings in Unity 3D. Or some build settings in FMOD? A missing Unity plugin maybe?

I haven’t found anything in the Unity documentation about enabling Atmos.

Cheers,

Tom

Hi Tom,

A setting to check would be the Project Platform under Unity Toolbar > FMOD > Edit Settings > Platform Specific > Project Platform which will set the Speaker mode for the FMOD System:

Could I also grab the Output Device you have selected in Preferences > Audio, and the Surround Speaker Mode you have set for the target platform under Preferences > Build

Hope this helps!

Hi Connor,

Yes, that’s helped a lot. Thank you. So I’m getting 7.1 out of Unity now instead of stereo which is good progress

Although Unity is still not outputting the full 7.1.4 with hiet channels, but FMOD does output the height channels

THese are the settings I have after following your instruction:

Apologies I missed one more setting:

First, will want to add the Windows platform by clicking the +:
image
Then set the Output Mode to Windows Sonic:
image

If that does not help, try this as well:

It might be worth trying Unity Integration | Connecting Using Live Update. You can check that the output is making it back to all the channels. Another test would be to call the following function in Start():

FMODUnity.RuntimeManager.CoreSystem.getSoftwareFormat(out int sample, out FMOD.SPEAKERMODE speaker, out int num);
Debug.Log(speaker); 

This will just confirm that the CoreSystem is in the right configuration. Let me know how that goes!

Thank you Connor,

I can confirm with live update on, we are receiving all 12 channels through the FMOD Master Bus.
However, we can only monitor in 7.1. We are sure the AVR is set up correctly, because when we play back in FMOD, we can monitor in 7.1.4.

We added Windows in the ‘platform specific’ section of the FMOD Settings in Unity as you suggested, and selected Windows Sonic as the output.

We weren’t entirely sure where to put the function call you suggested - is that a function definition which we should call with input arguments in the Start() function of the Studio Event Emitter script?

This can be called in any Start() function connected to a gameObject in your scene:

void Start()
{
    FMOD.SPEAKERMODE speaker = FMOD.SPEAKERMODE.DEFAULT;

	if (FMODUnity.RuntimeManager.IsInitialized)
        FMODUnity.RuntimeManager.CoreSystem.getSoftwareFormat(out int sample, out speaker, out int num);

    Debug.Log("Current Speaker setup: " + speaker);
}

Is this only happening in Editor? If you make a build of the project does it output correctly?

1 Like

Thanks Connor, I’ll give this code a try and let you know what happens.

Good point about trying a build - I’ve only tried this in the editor so far so maybe it builds correctly - I’ll let you know,

Cheers

1 Like

Hi Connor,

I’ve tried a build of the project and can confirm that is it working fine - all 12 channels working and in the correct 7.1.4 order.

So it seems like I can author the Atmos bed in Reaper, then import this into FMOD and add audio objects as necessary. I just can’t monitor Atmos properly in Unity until I build the project.

1 Like

Thank you for letting me know.

That is interesting, I will continue to investigate.