I read though this wonderful document and it’s very very helpful.
Even though it clarified almost everything I wanted to know, I came up with a few more questions.
Do I need to use FMOD_Channel_SetPaused(FALSE) before modifying a DSP network graph when a sound is already playing?
Do I need FMOD_INIT_PROFILE_ENABLE when I put FMOD_INIT_PROFILE_METER_ALL flag already?
I tried without the FMOD_INIT_PROFILE_ENABLE flag but worked fine!
Thanks to the FMOD Profiler tool, I could find the cause of noises in my application.
In certain situations, such as playing too many sounds at the same time, green level meters turned red.
So I’m thinking of adjusting volume, but I’m not sure because I think it may vary depending on platforms and hardware.
If the code and resource sound files are exactly the same, will the FMOD’s internal (software level) meters be always the same as well on other OSs and devices? (eg. WASAPI, ASIO, OpenSL ES, Android, iOS, MacOS, Windows, Linux)
You said, this way, I could avoid unwanted noises.
At that time, I just thought this had something to do with setting a DSP’s value, in this case, pitch.
But now I wonder if it’s better to call pause and unpause functions before and after adding or removing a DSP all the time.
You can pause the sound while you make changes but you don’t need to.
The reason to do it like this is because the sound will start before the DSP’s have been added or the pitch has been adjusted, meaning they will come into effect but not necessarily immediately. By pausing the sound when it is created you are ensuring that it won’t start playing until after the effects are added.