An idiots guide to using the Oculus SDK with FMOD

Cheers Geoff,

Your right a seperate module would have been better but as the UE4 plugin system is a bit of a blackbox to me I just extended functionality
within your current module.
It would be great if you could create a seperate module for the next release.
BTW Is there any chance of you guys including 32bit binary’s with the next release?

Thanks for the tutorial helped me out alot!

However, everything works fine in the editor but I have problems running my game after I packaged it in UE 4.7.2.

The error I am getting is this:

I tried to copy the .dll files into my game folder I packaged… but no luck.

I just had another look at our latest release, and it has FMOD 32bit dlls, the compiled plugin for Win32 Shipping, but is missing the Binaries/ThirdParty/FMODStudio/Win32 files. They are actually just a copy from Plugins/FMODStudio/Lib/Win32/*.dll but I will update our build script for next release.

Just wanted to say FMODSTUDIO is a great tool! Its an easy transition for the audio heads, because the workflow is very similair to Ableton Live / Bitwig. Thumbs up:cool:

Thanks, much appreciated! I’ll pass that along to the team.

Incredibly helpful, thanks.

I’ve gotten everything to work except one thing–it appears that spatialization and volume work fine when moving around a level with the mouse and WASD keys. However, with positional tracking, I can’t seem to get the audio to follow the position of the headset. For example, I would expect the audio to get louder as I approach it physically (due to positional tracking from the camera), but the volume remains the same (whether I move forwards or backwards). The audio only changes volume when I move towards it or away from it using the WASD keys. Any advice?

Definitely a great tool!! Is it possible to use the FMOD and Oculus plugin also with real time streamed audio?

Nevermind… keep calm and carry on.

Can you use their audio SDK even if you aren’t making a VR game? VR or not, everything benefits from spatialized audio. :slight_smile:

Thank you for Opamp77. Do you know if this works on Android for the GearVR?
I’m going to budget around a day to integrate this for the VR Jam. Audio isn’t getting any love in that Jam.

Firsthand experience with this… out of the box the plugin does not package properly to the Note 4 and so the app will crash at start up on the GearVR because the plugin isn’t included in the apk. So after following Opamp’s guide here and then his followup on packaging the plugins here, which works for desktop packaging, the next step to solving this is to contact FMOD support and to request a modification to the UEDeployAndroid.cs file in the UE4 source code which they describe as necessary within the FMOD Integration CHM Documentation in the UE4 Help menu dropdown under the section within the CHM on Deployment.

From my communication with FMOD support after doing this, “The windows version of the FMOD integration already has the Android .so files and the .jar file, but there needs to be a modification of UE4 in order to correctly package them up. I’ve been in contact with Epic and they are improving plugin loading for 4.8, but the workaround is to modify UEDeployAndroid.cs and built the UBT build executable. I have attached the code to add in the “android_uedeployment.txt” file…,” which then goes into detail where and how to insert the code.

Unfortunately the email they sent did not include the attachment with the code inside of it, either because it was inadvertently not sent or because Gmail blocked and removed the file before sending it to me. I requested on Friday morning that they resend the attachment to a different email address, yet have not heard back at this time and imagine that I won’t until after the weekend. Just for context since you said, “budget around a day to integrate this,” I sent my initial request on Monday morning of this last week and received the first response on Thursday morning. Having started this integration process myself with this thread here almost two weeks ago, I’ll admit to being a bit frustrated by it and have considered dropping FMOD altogether several times, mainly because the process has been so convoluted and not documented very well, or not documented at all actually. All of this was discovered from piecing together clues, trial and error and reading between the lines, mostly from Opamp’s threads, without which we would all be completely lost.

Because there is one more thing… though the process above will allow FMOD itself to deploy to Android, the actual Oculus Spatializer plugin is not included within the FMOD Plugin itself (the 64-bit and 32-bit .dll versions are), and according to my understanding of the FMOD and Oculus Audio SDK documentation, along with Opamp’s packaging directions on the OculusVR forum, the file included within the Oculus Audio SDK from the Plugins>FMOD>android directory needs to be manually placed somewhere, either within the UE4 engine, the Android NDK -and/or- within the apk directly after packaging, just like the .dll plugins require doing for PC packaging.

When I explained my situation with deploying the Oculus Spatializer to the GearVR and asked FMOD support about where the should go or if it needs including, their response was, “I’ll get back to you regarding loading plugins via Android. The main issue is getting them in the right place so they are packaged up properly during the Android build process.”

In the recent Mobile VR AMA on reddit, Chris from Oculus looked into my question as to where this should be placed and said the following, “I spoke to somebody on the UE4 team who suggested that you but .so files at Engine/Build/Android/Java/libs/armeabi-v7a. If you have trouble, check out UEDeployAndroid.cs.”

All a bit circular, even being linked back to this thread both by Oculus there and by FMOD Support in one of their emails, yet still moving forward… so once I get the code from the new attachment from FMOD support, I am going to insert the code into my own modification of the UE4 source as posted in the following thread here, and then will place the file at Engine/Build/Android/Java/libs/armeabi-v7a within the source directory, then package to the Note 4 and see if it works on the GearVR. If not, then I will follow Opamp’s packaging suggestion to manually place the plugin into the apk after it has been packaged and see if that works.

If it all works, woo-hoo! If not, then I’m canning FMOD, because yeah.

I hope this helps clarify your decision (or anyone else’s) and wasn’t too long-winded. Lately I’ve kind of adopted the mantra, “It’s complicated.”

Edit: Yes, it works with help from FMOD Support.

Firsthand experience with this… following Opamp’s guide here and here, neither the FMOD nor Oculus plugins will package properly to the Note 4 and so the app will crash at start up because the plugins are not included in the apk. The solution is to contact FMOD support and to request a modification to the UEDeployAndroid.cs file in the UE4 source code, as described within the Deployment section of the FMOD Integration CHM Documentation in the UE4 Help menu.

Though this will allow the FMOD plugin itself to deploy to Android, the Oculus Spatializer plugin requires the file from the Oculus Audio SDK to be manually placed in Engine\Plugins\FMODStudio\Lib\Android within the UE4 Source directory, which then gets packaged in the proper location by FMOD Studio once the source code modfications from FMOD Support are applied.

Thanks Akshara for the detailed response.

I’ll try the latest native 3D audio support in the master branch instead of FMOD.

I was able to get the Oculus Spatializer working on the GearVR with FMOD Support’s help and edited the post above to reflect this. I posted a rough outline of the process over on the Oculus forums to try and help Bino and anyone else in the Jam get it up and running as quickly as possible. If you are in the Mobile VR Jam and reading this while researching how to get the Oculus Spatializer working, the only option within UE4 at this time is to get FMOD up and running and deploying to Android successfully, which requires contacting FMOD Support. If you have a question about my process for getting it to work, reach out through a PM or post it here and I will answer if I am able.

The instructions posted here and by Akshara and Geoff of FMOD works really well :slight_smile:

May as well try asking this question here. I’ve posted it in the FMOD forums as well.

This works well for me if I drag and drop an FMOD event into the scene.

However I can’t seem to fire it from blueprints. It works in the mobile and PC simulator but not in Note4.

Is it possible to fire spatialized sounds from Blueprints?

Wanting to follow along, as I’m curious as well, yet am confused that you posted in the FMOD forums… their forums are archived read only. Where did you post this?

I posted the question where Geoff gave his answer -

But I now realised that’s not really an appropriate place based on the format of that site.



You have to add an FMODAudio object to the blueprint class. You cannot select an event from Play Event Attached.

If you think you’re an idiot then what should i say after clicking on at least 10 invalid links in order to compile this thing because it’s crying for .lib files that aren’t in the “SDK” or whatever its called.
A bit upset about it, it should be 2 clicks