using FMOD_OUTPUTTYPE_WAVEWRITER_NRT to generate a wav-file as output, it works so far, but there are ~6 seconds silence at the start of every output file. I don’t see anything in docs about that. May be someone can help me?
(If I playing this bank live, without recoding, the will be played normal, without silence. Tests in FMOD Studio works as well)
The param “surfaceParameter” is 0 - 6.
If I set output mode to a kind “live” - I can start at every level (0-6) and it works.
With wavwriter all levels except 6 creates silence at the beginning.
Pass FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE to the second argument of Studio::System::Init(), otherwise Studio will create a thread that is ticking the low-level update in the background and writing WAV data when you don’t want (during your load for example).
I’ve tried the FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE as well, it’s all the same. Anyway this mode will be forced on using wavwriter (I did debug on to analyze this issue).
the bank has 7 markers (for every parameter value 0-6).
all markers / transitions works as expected in FMOD studio and works as expected without wavwriter mode
but, in wavwriter mode ERRCHECK( surfaceParameter->setValue(6.0f) ); only produces no silence at the beginning, the music sounds immediately.
All over values (0-5) creates silence at the beginning. And the silence length is not constant, it’s between 5-7 seconds.
The wavwriter mode is update() driven, the only difference ist the params value which I start with. Param value = 6 -> no silence, Param value 0-5 -> silence on start. Happens only with wavwriter.
I’ve attached the screenhot of the fmod project, the marker 6 is at the end.
ERRCHECK( lowLevelSystem->setDSPBufferSize(1024, 16) ); seems excessive, it should be 1024,2 with NRT, you dont need 15 buffers ahead, which will be silence at the start.
It seems to me, NRT ist NOT only update() driven as API docs say.
It seems to me, wav file will be written before any update(), on setParam() or event->start().