Within FMOD, I don’t expect high-quality Limiter and Compressor like professional DAW’s plugins.
I just wanted to remove or reduce peaks, but FMOD’s built-in FMOD_DSP_TYPE_LIMITER and FMOD_DSP_TYPE_COMPRESSOR didn’t seem to work properly.
Yes, they compress frequencies, but could never be used because they created annoying noises.
I know what are Transient and Attack in the sound envelope.
I know aggressive Thresholds and short Attack Times ruin the sound quality.
But those noises weren’t what I was expecting at all.
And you know, my Threshold and Attack Time settings were very subtle, and even video editing tools like Adobe Premiere could process the same audio file with much more aggressive settings without any noise issues.
In some cases, I think FMOD_DSP_TYPE_COMPRESSOR can be useful for shaping envelopes because it works with LONGER Attack times with no issues.
But I’m not making an audio editor at the moment.
I just want to play sounds loud enough without peaks.
How do I achieve that?
PS. Is it possible to add external Limiters / Compressors provided by third parties?
If so, what are those, and how do we use them?
You are already aware of the real-time processing tools included with FMOD Studio; if they do not fulfill your needs, you will have to look outside of FMOD Studio for your solution.
Bear in mind that all effects in FMOD studio are designed to process audio in real time. This means that, unlike the effects in linear audio editing software such as Adobe Premiere, they consume resources at run time, and are sometimes unable to achieve the same levels of smoothness and subtlety. As such, we strongly recommend processing your game’s source audio assets in a linear audio editing application whenever you don’t need to effect to vary dynamically as your game runs.
Yes. To install a plug-in effect into FMOD Studio, simply copy it into one of the relevant plug-in directories, and it will be available for use the next time you load your FMOD Studio project.
Again, most effects that appear in DAWs are not capable of real-time processing, and so are not compatible with FMOD Studio. You will have to find or make a plug-in effect that’s capable of real-time processing and compatible with FMOD Studio.
As you said, I also suspected the real-time processing as a cause.
But after some tests, I came to the conclusion that it was rather FMOD’s algorithm.
I switched between different audio drivers (for lower latencies), increased the DSP buffer size, and tried on different devices, but no difference.
It wasn’t overshooting noise. FMOD’s limiter and compressor can successfully catch the fast attacks and compress/limit them.
So it actually does prevent signals from hitting 0dB and beyond, but the problem is, it creates new artifacts.
Namely, FMOD_DSP_TYPE_LIMITER / FMOD_DSP_TYPE_COMPRESSOR replaces peak noises with other artifacts.
To me, those sounded a little like guitar distortion effects.
They are milder than peak noises and can get louder or quieter as you set the parameters.
So, if you want to prevent the audio output devices (and our ears) from being damaged by peaks and get some special distortion effects, then FMOD_DSP_TYPE_LIMITER / FMOD_DSP_TYPE_COMPRESSOR can be useful.
But if you just want to mitigate peaks, then they aren’t.
I don’t know the exact algorithm behind software limiters/compressors, but I guess FMOD’s just compresses while other professional plugins do more than that to make the compressed signals smooth.
If you think about it, we can play virtual instruments with plenty of real-time virtual compressors and limiters in software like Cubase without this kind of issue.
And many of them even have additional options like KNEE.
At least as for FMOD_DSP_TYPE_LIMITER, it needs some improvement, I think.
Because most of the time the limiter’s only purpose is to kill peak noises, but FMOD’s limiter is sitting there just to replace with distortion artifacts.
FMOD is really good and I’m always satisfied, but this is the first time I’m very frustrated with the API…