I’m trying to setup a project with resonance audio through fmod.
We followed the integration details from The resonance audio fmod guide and managed to get spatialized audio and occlusion to work through the Resonance Audio Source Plugin and Resonance Audio Listener.
We are struggling to set up the Room Effect tho, even while using the default UE4 Audio Volumes, creating a Room Effect, Setting up the Global Reverb Preset, it does not seem to take the fmod audio into account and we can’t hear any reverb.
We’d like to know how we can use the Acoustic Textures system effectively and expose its values in Blueprints, and make it work with already integrated sounds using the Resonance Audio Sources.
The lack of ressources on this plugin is making everything hard to understand and set up properly.
The Global Reverb Preset is part of UE4’s support for resonance audio. This is separate to FMOD’s resonance support, and so you will need to work through FMOD to have room properties affect FMOD events. At the bottom of the guide, it mentions setting the room properties via FMOD::DSP::setParameterData, so hopefully that will give you a good starting point.
It will be a similar process to what you would need to do for room properties in unity with resonance. It maight be helpful to cross check with the unity instructions on the same page.
We don’t have example code for Unreal. You may want to look at the unity integration in FMODResonanceAudio.cs for more detail. It is written in C#, but you can see what needs to be done, such as finding the dsp by name and how to go about iterating through dsps via channels and busses.
You have to hook up query collider volumes manually. I got the dsp working by porting parts of the Unity code. We opted out of using resonance audio for reverb when we realised that it forced everything into mono (and we want stereo for first person sounds). So now we’re just using fmod reverb snapshots.
And this is how we push room properties to the DSP. The RoomProperties.h file is copied from resonance audio’s room properties header, which you can find on their github and is linked via their documentation.
An audio volume then just needs to set the room properties of that room, and you should be golden (but I leave that up to you to handle what best suits your project).
So, how I understanding, we should call “UpdateRoomProperties” every time, when we overlapping an Audio Volume, which instance locates in another c++ file and pass from this file an instance of RoomProperties struct to “UpdateRoomProperties”…
Excuse me for my English.