Disabling volume ramping

My music game app provides a custom envelope graph option so that our users can adjust the volume of their own sound resource over time.
My app reads the graph data and calls FMOD_Channel_SetVolume() accordingly every frame.

If I’m not wrong, FMOD’s volume ramping is enabled by default.
So I’m curious if it’s better to call FMOD_Channel_SetVolumeRamp(FALSE) / FMOD_ChannelGroup_SetVolumeRamp(FALSE) in this specific case,
for lower overhead, smoother volume change, and less popping noise.

By the way, users can play their sound files as many as they want at the same time, and FMOD_System_Update() is called every frame (=every 2~5ms) on the same thread as the one that calls FMOD_Channel_SetVolume().


Calling ChannelGroup_SetVolumeRamp would allow you to influence the behavior of all the channels routed into the group in one call, rather than having to call it on each individual channel. However, changing either to false will result in instant volume changes and popping.

Hope this helps!

I mean, I know what those functions do and I understand why it’s enabled by default.
But do you think setting the ramp state to false isn’t appropriate for the case above?

On my test devices, it seems okay, but I’m not sure about other devices out there.
So I’m asking for the FMOD team’s opinion/advice on this.

This is what I mean


Apologies for the miss understanding.

The improvement in overhead will be imperceptible and it will negatively impact both volume change and popping, so leaving ramping enabled would be advisable.

1 Like