# DSP buffer problem in NRT

**URL:** <https://qa.fmod.com/t/dsp-buffer-problem-in-nrt/23192>\
**Category:** FMOD Engine\
**Tags:** cpp\
**Created:** [July 23, 2025, 1:24pm UTC](https://qa.fmod.com/t/dsp-buffer-problem-in-nrt/23192 "2025-07-23T13:24:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![chagh](https://avatars.discourse-cdn.com/v4/letter/c/858c86/32.png) [@chagh](https://qa.fmod.com/u/chagh)\
**Post date:** [July 23, 2025, 1:24pm UTC](https://qa.fmod.com/t/dsp-buffer-problem-in-nrt/23192/1 "2025-07-23T13:24:38Z")

</div>

Hello!  
I’m using FMOD Core API in C++ and I’m trying to use `NOSOUND_NRT` processing to capture audio data for ffmpeg encoding in best quality as fast as possible (using DSP read callbacks).

The problem I encountered is that FMOD manages DSP buffers internally in another thread (even in NRT mode), so if I advance too much in a short amount of time using `FMOD::System::update`, the audio quality will degrade due to (what I assume is) internal buffer overflows. Due to the nature of my problem I cannot just increase dspBufferSize or/and `numbuffers` to a random number since it’s just guessing if it’s enough for a random very-fast system.

Is there a way to forcefully clear internal buffers or/and reliably know when advancing a system will not degrade quality?

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [July 29, 2025, 5:25am UTC](https://qa.fmod.com/t/dsp-buffer-problem-in-nrt/23192/2 "2025-07-29T05:25:03Z")

</div>

Hi,

Could I grab your FMOD Version? Would it be possible to share the code so I can try and reproduce the issue on my side? It can be uploaded to your [profile](https://fmod.com/profile#uploads).

We also have an Core API example for writing output to a `.mp3` file: `"C:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\examples\plugins\output_mp3.cpp"` which may have some useful information. Rather than using a custom DSP you can create a custom output plugin: [FMOD Engine | Core Api System - System::Setoutputbyplugin](https://fmod.com/docs/2.02/api/core-api-system.html#system_setoutputbyplugin).

> [@chagh](#):
>
> Is there a way to forcefully clear internal buffers or/and reliably know when advancing a system will not degrade quality?

The mixer takes `10ms~` to update so you could try only calling the `system->update()` only after `10ms`? ([Abnormal sound when using FMOD\_OPENUSER - #4 by jeff\_fmod](https://qa.fmod.com/t/abnormal-sound-when-using-fmod-openuser/21621/4)).
