Hello,
I’m currently working on the Godot 4.5 source code, making a custom FMOD engine module. The rest of the integration is unimportant in its implementation, but I am currently dealing with rendering a waveform of Studio 2.03.13’s output of the provided event.
I’m using FMOD_OUTPUTTYPE_NOSOUND_NRT for the output type and initializing with the studio flags FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE and the core flags FMOD_INIT_STREAM_FROM_UPDATE | FMOD_INIT_MIX_FROM_UPDATE.
For the rendering itself, I’m setting up a capture DSP (attached to the master channel group) with a read that only appends the inbuffer across all channels to an external array and copies them to the outbuffer afterwards (for which I can share any specific code as needed).
The issue I’m having with this process is that it’s producing inconsistent and unclean results. Rendering of the waveform in-game is broken into chunks of the song, and these often have leading silence (which I trim at render-time to preserve the requested duration of render) and, more importantly, incorrect data or even no data at all for no apparent reason.
For capturing an event’s final output at a position for a duration, is there a recommended method that I should consider? If not, are there any issues with things I could be missing, like initialization flags or other setup? Again, I can share any code as needed, but the module code is uploaded to my profile for viewing.
Thank you.