How to process PCM data as quickly as possible for changing voice file?

I am implementing a file voice modulation feature. Here is my workflow:

First, I decode an audio file to obtain PCM data. Then I process the PCM data through a series of VST plugins to get modified PCM. Finally, I input the modified PCM into the Fmod engine for voice modulation.

However, I am facing an issue where the processing speed of Fmod matches the normal playback speed. Is there a way to make Fmod process the PCM data directly and quickly, bypassing the normal playback speed?

From a programming perspective, it seems simple to skip the code related to the sound frequency loop. Does the Fmod API provide any settings or parameters for this?



I believe what you’re looking for is the initialization flag FMOD_INIT_MIX_FROM_UPDATE, in combination with the output type FMOD_OUTPUTTYPE_WAVWRITER_NRT. The output FMOD_OUTPUTTYPE_WAVWRITER_NRT is a non-realtime output that writes to a .wav file, and FMOD_INIT_MIX_FROM_UPDATE causes the FMOD system to mix from calls to System::update instead of in realtime, so you can call System::update as quickly as possible to process audio as quickly as possible.

Thank you for your reply.