FMOD Engine User Manual 2.03

1. Welcome to the FMOD Engine | New in FMOD Engine 2.03

What's New in 2.03?

This section describes the major features introduced in the 2.03 release. See the Detailed Revision History for information regarding each patch release.

Echo Improvements

Changes in delay time can now be ramped gradually using FMOD_DSP_ECHO_DELAYCHANGEMODE_LERP. This mode is best suited for small changes in delay, otherwise a noticeable warping effect can occur. This warping can be used for simulating doppler, and as an effect with large parameter changes.

The existing delay change mode of FMOD_DSP_ECHO_DELAYCHANGEMODE_FADE has been made the default, and is best suited to large changes in delay time. With small changes, a noticeable zipper effect can occur.

EQ Improvements

The Multiband EQ effect now has low-overhead 6dB highpass and lowpass filters.

The 6dB lowpass filter can be set with FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_6DB, and uses an efficient one-pole low pass design.

The 6dB highpass can be set with FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_6DB, and uses a slightly less efficient one-pole one-zero highpass design.

FFT Improvements

Hardware offloading of the FFT DSP can now be enabled using FMOD_DSP_FFT_IMMEDIATE_MODE.

The RMS value of the analysis band's spectral components can now be queried using FMOD_DSP_FFT_RMS. The analysis band's range can now be set with FMOD_DSP_FFT_BAND_START_FREQ and FMOD_DSP_FFT_BAND_STOP_FREQ.

FMOD_DSP_FFT_DOWNMIX and FMOD_DSP_FFT_CHANNEL have been added to provide greater control over how the input signal is processed and which part of a spectrum is analyzed.

Multiband Dynamics

A new DSP effect has been added, FMOD_DSP_MULTIBAND_DYNAMICS. This plugin can be used to compress or expand the dynamic range of a signal within three separate frequency bands.
The Multiband Dynamics plugin operates similarly to the existing FMOD_DSP_COMPRESSOR plugin, providing gain, threshold, ratio, attack and release controls to alter the envelope of the signal. The difference is that the Multiband Dynamics plugin can perform this same processing in a limited frequency range, and rather than just attenuating the signal above the threshold it can also be configured to amplify or attenuate the signal above or below the threshold.

Here are the different modes available in each band, as well as some suggested use cases for them:

Upward Compression

This mode can be set with FMOD_DSP_MULTIBAND_DYNAMICS_MODE_COMPRESS_UP to amplify the signal below the threshold.
Upward Compression can be useful for bringing out quieter details in sounds, such as breath in the middle frequency range of vocals, or fret noise in the upper frequency range of a guitar.

Downward Compression

This mode can be set with FMOD_DSP_MULTIBAND_DYNAMICS_MODE_COMPRESS_DOWN to attenuate the signal above the threshold.
This is the mode that the existing FMOD Compressor uses, and is useful for bringing down harsh percussive sounds, such as plosives and sibilance in the upper frequency range.

Upward Expansion

This mode can be set with FMOD_DSP_MULTIBAND_DYNAMICS_MODE_EXPAND_UP to amplify the signal above the threshold.
Upward Expansion can easily cause clipping, so use with caution, but can be useful for bringing percussive sounds forward, such as snares in the upper frequency range or explosions in the lower frequency range.

Downward Expansion

This mode can be set with FMOD_DSP_MULTIBAND_DYNAMICS_MODE_EXPAND_DOWN to attenuate the signal below the threshold.
Downward Epansion be useful for removing noise in the signal, such as bird chirps in the upper frequency range, or room tone in the lower frequency range.

Passthrough Ports

A new port type has been added, FMOD_PORT_TYPE_PASSTHROUGH, to bypass the binauralization applied to all sounds by WinSonic and PS5.

You can use this port type to preserve multi-channel layouts for non-diegetic sounds.

VR Vibration

Controller vibration for VR devices that support vibration, such as the PlayStation VR2 Sense™ controller, can now be controlled by FMOD_PORT_TYPE_VR_VIBRATION Ports.

To use VR vibration ports in the Core API call System::attachChannelGroupToPort, passing in FMOD_PORT_TYPE_VR_VIBRATION for the portType and the controller's user id for the portIndex.

For the Studio API, you must create a Port Bus in FMOD Studio, set to the "VR Vibration" port type, and route audio into the Port. Then in the API, retrieve the Port with Studio::System::getBus and call Studio::Bus::setPortIndex with the controller's user id to route the Port's audio to the controller.

Platform Notes

API Differences

APIs that have changed with this release that haven't been called out explicitly above.

Studio API

Core API

What's New Since 2.02 Initial Release?

This section describes any major changes that occurred in 2.02.xx leading up to the release of 2.03.

Platforms

API Differences

APIs that have changed with this release that haven't been called out explicitly above.

Studio API

Core API

FSBank API