Correct way of sending parameters to FMOD (choppy sound)

Hi! I’m working on a racing game and we’re sending several parameters to FMOD from the code like RPM, Load etc.

I’ve setup my RPM loops and blends as well as the onload / offload sounds. The engine we have changes RPM very rapidly, goes from 0-8000 in half a second - second.

The problem i have is that the blends sound quite choppy, like the parameters would come in in chunks, it does not blend smoothly. Is there some basic things i should be aware of when sending parameters, like frequency parameters are sent, buffers, frames etc?

Anyone?

Hi,

The main things to keep in mind when setting parameters is that by default:

  1. Parameter changes are instantaneous - there is no ramping between two values.
  2. The FMOD Studio system update period is 20ms, meaning that parameter values (and other values set via the Studio API) will only change value every 20ms.

Depending on what exactly you’re doing, one (or both) of these can lead to parameter changes sounding audibly choppy.

There’s a couple of way to work around this. The simplest way is to set the parameter to have a seek speed in FMOD Studio. Seek speed can be found by clicking on the parameter in the “Overview” area of the Event Editor, or by selecting the parameter in the Preset Browser. Setting a seek speed will cause the parameter value to ramp linearly over time to the target value instead of changing instantly, which can eliminate some of the choppiness.

A more advanced method is to specify a smaller update period using FMOD_STUDIO_ADVANCEDSETTINGS.studioupdateperiod when setting your System’s advanced settings before initialization with Studio::System::setAdvancedSettings. Be aware that this will affect the whole system, and will likely change the expected CPU overhead.