I created a UE4.27 Demo project to test the difference between different versions of FMOD:
The environment is Windows10 x64 and UE4.27.2
I only added one line of code to FFMODStudioModule::CreateStudioSystem, which is handled in the same way for different versions of FMOD
lowLevelSystem->setOutput(FMOD_OUTPUTTYPE_NOSOUND);
Configure the sample rate to 48000 in the UE4 project settings > FMDOStudio
I created an Actor, created ChannelGroup and DSP in BeginPlay, very simple code
auto StudioSystem = IFMODStudioModule::Get().GetStudioSystem(EFMODSystemContext::Runtime);
FMOD::System* CoreSystem = nullptr;
StudioSystem->getCoreSystem(&CoreSystem);
FMOD::ChannelGroup* BaseCG = nullptr;
CoreSystem->createChannelGroup("BaseCG", &BaseCG);
FMOD::DSP* BaseDSP = nullptr;
FMOD_DSP_DESCRIPTION Desc = {};
Desc.numinputbuffers = 1;
Desc.numoutputbuffers = 1;
Desc.read = [](FMOD_DSP_STATE* dsp_state, float* inbuffer, float* outbuffer, unsigned int length, int inchannels, int* outchannels)-> FMOD_RESULT
{
const auto NowTime = FDateTime::Now();
UE_LOG(LogTemp, Error, TEXT("Callback: %d"), (NowTime-PrevTime).GetFractionMilli());
PrevTime = NowTime;
return FMOD_OK;
};
Desc.userdata = nullptr;
CoreSystem->createDSP(&Desc, &BaseDSP);
BaseCG->addDSP(0, BaseDSP);
FMOD 2.02.04 and 2.02.05, only need to try once, no need to play any audio, after tens of seconds, the DSP callback frequency will be much faster.
FMOD 2.01.13, in the same situation, I tried more than three times, and the running time was longer, but there was no abnormality.
This error only appears in version 2.02 of FMOD and in FMOD_OUTPUTTYPE_NOSOUND mode.
When an error occurs, the frequency of callbacks will suddenly become faster:

