Surround Sound w/ FMod Studio + Unity


#1

Hi All,

I’m a bit new to surround sound with FMod and Unity. Was wondering if someone could help me out?

  1. If I’m doing both stereo and surround for different platforms do I need separate project files or just separate banks?

  2. When importing surround sound files into f-mod do they need to be 5.1 files or individual mono/stereo files that are panned accordingly in f-mod?

  3. Is the generating banks process the same and will it update to unity as expected

  4. since FMod Studio is a plug in to Unity, does anything special need to be set up or scripted to support surround?

Anything I’m missing to ask? Links you can provide for set up?


#2

I’m afraid I don’t understand your third question. Is the generating banks process the same as what, and what expectations do you have that may or may not be met?


#3

Sorry . So to get latest data from FMod Studio to Unity I right click on my sound bank and select “generate banks” and unity will then update with the new sounds I added. I assume that process is the same for 5.1?


#4

Yes, it works in exactly the same way. I’ll add that to my answer.


#5

I’ll answer your questions in order:

  1. You can add platforms to the list of “project platforms” in the Build tab of the Preferences window. This window also allows you to assign a different speaker format to each target platform. When you build your project using the “File > Build All Platforms” command, FMOD Studio will automatically build separate banks for each platform in the project platforms list.

  2. FMOD Studio can load and play 5.1 channel audio assets just fine. (FMOD Studio can load and play files in almost any channel format, and can also upmix and downmix between channel formats within a project if you wish to mix assets with different channel formats.)

  3. Yes, and yes. Generating banks for 5.1 surround in FMOD Studio is exactly the same as generating banks for other speaker formats in FMOD Studio.

  4. To the best of my knowledge, Unity does not need any special preparation to handle surround sound content.


#6

Perfect thanks!

Loading in a 5.1 Channel Audio file into F-Mod - Does it need to be a specific channel configuration? L R C LS RS LFE?


#7

If the file plays channels through the correct speakers in other applications, it’ll play its channels through the correct speakers in FMOD Studio. This is because FMOD Studio assumes that all audio files follow the specifications of their respective file formats; that wav files use the “front left, front right, center, LFE, rear left, rear right, side left, side right” order, that ogg Vorbis files use the “front left, center, front right, side left, side right, rear left, rear right, LFE” order, and so on.

Incidentally, if you use Reaper, be aware that Reaper uses wav channel order for all audio file formats. Because of this bug, if an ogg vorbis file plays back correctly in Reaper, its channels are in the wrong order, and this will be noticeable when the file is played in other applications.


#8

Thanks for the tip RE reaper channel order.

Do you anything about troubleshooting once it’s in Unity? In reaper with my 5.1 speaker system I hear audio out of all speakers. In F-Mod studio I also hear audio in all speakers. After generating banks and launching the game in Unity - I only hear audio in L and R regardless of what audio output setting is defined in unity.

Thanks,
Kristi


#9

What platforms are set up in FMOD Studio, and what are the surround speaker modes set for those platforms? If your unity game is using banks built for a platform set to stereo, that could explain the behavior you’re hearing.


#10

Very nice Q&A, I just want to share the workflow we use at SoundFellas.

We make tests with a multichannel file that has a voice recorded in each channel, you know, the usual “front left, right left” kinda thing.

Then we use a cascading routing pipeline in Reaper in which we route the final surround track to different empty tracks that are titled with the output environment / format, i.e. “7.1 Ogg of Unity”.

Then we put in each of those tracks one instance of this plugin: https://www.meldaproduction.com/MChannelMatrix

And configure it according to the notes we took for each dev environment with our test recordings.

Then we use the Reaper’s render matrix to output from those empty tracks for each output that we need.

This project is saved as a template throughout our company, so we open this and start working on music or ambient and then we export whatever we need.

That way, we can also keep our main production pipeline under one standard and export from there to multiple targets, or even set targets for different customers.

Final tip: you can also set some upmix / downmix processing on the target tracks, in order to be able to mix once and then export fast and safe to all targets you need.