Using FMOD_Memory_GetStats, I find there is memory leak in my fmod procedure. I have constructed a very complex graph but I only release the sound and the system at the end. I guess it is because the tens of DSP I created.
Do I need to remove the DSP I created one by one at the end? If so, is there a convenient way of releasing all memory when I release the system?
You need to make sure any Sound, ChannelGroup, Geometry and DSP objects are released before calling System::close/release. You will also need to make sure your DSPs have been removed (ChannelControl::removedsp) before you can release it.
FMOD - Core API Reference | System (system close)
Closing renders objects created with this System invalid. Make sure any Sound, ChannelGroup, Geometry and DSP objects are released before calling this.
FMOD - Core API Reference | DSP (dsp release)
Closing renders objects created with this System invalid. Make sure any Sound, ChannelGroup, Geometry and DSP objects are released before calling this.