FMOD Unity - TimeScale

Hello everyone.
I’m working on a Unity game, trying to integrate FMOD I ran into few problems. The most annoying of them is that playing events do not respond to engine’s time scale (for slow motions).

For single sounds I can programmatically change the pitch when playing the event but it’s far too hacky for a scene full of events playing, some of them in loop (like ambience or noise).

Am I missing something? Is there any way to pair the FMOD Studio engine with unity’s time scale?

FMOD runs it’s own clock which is not tied to Unity’s, this means that changing one does not effect the other.

In FMOD 1.10 we introduced the ability to change pitch on buses/groups, creating your own ‘master group’ you could then adjust the pitch on, would adjust the pitch on all events.

A recent video by Scott Game Sounds covers this:

Hey, do you have the link to this video?
Edit: Didn’t realise this post was so old haha, thought it meant November 17th

For some reason the link wasn’t showing, but if it’s still useful, here it is: FMOD & Unity | Snapshots + Slow Motion/Bullet Time Effect - YouTube

1 Like

Thanks! I followed this guide and it worked

One issue though is that the audio quality is noticeably lower quality than the way I used to do slow motion via Unity’s audioSource.pitch = value

In my game’s bullet time I’m setting the timeScale / pitch to 0.375, which translates to 12 x log2(0.375) ~= -17 semitones on the snapshot

Is there any way to fix the audio quality?

Alternatively is there a different way to set the pitch on all sounds? I’ve noticed that EventInstance has a setPitch method
Since a limitation of the snapshot method is the slowest I can go is -24 semitones (0.25 time scale)

If you’re using the same asset in each, it’s likely that there’s a difference in the encoding/compression settings between your assets in FMOD Studio and the Unity editor/build, and that the resulting difference in quality in the higher frequencies is easier to hear at a lower pitch. Try adjusting the default encoding setting for your target platform in FMOD Studio in Edit → Preferences → Build → Project Platforms and seeing whether that resolves the issue.

If you “stack” the pitch change, for example by setting the event pitch to -24st, and then setting the pitch of a parent bus or child instrument to -24st, then you can exceed -24st of pitch change.