FMOD + GodotSteam Voice Chat Integration

Hi all, I am working on a P2P game that utilizes GodotSteam for networking and voice chat (Voice - GodotSteam). Currently, it is setup to work with Godot’s audiostream nodes but I am trying to integrate it with the FMOD event nodes so we can apply snapshots and other dynamic audio effects.

From my understanding, we need to send the voice chat data to a programmer instrument using FMOD_SOUND_PCM_READ_CALLBACK or Sound.lock / Sound.unlock. I am just not 100% sure if I am on the right track on implementing this in Godot. The FMODEventEmitter3DGodot node exposes set_programmer_callback(p_programmers_callback_sound_key: String)which I assume I need to use to send voice chat data to FMOD? I will admit I am a bit lost in translating Unity implementations into GodotSteam.

Any input is greatly appreciated, thanks!

P.S. I am using Godot 4.5 and FMOD Studio 2.02.24

Sorry for the delayed response!

You’re on the right track, however, it appears based on the function signature that set_programmer_callback maybe be expected to solely work with audio table assets. Could I get you to link the third-party FMOD Godot integration you’re using so I can take a closer look and point you in the right direction?

No worries at all

I am using the Godot Fmod GDExtension: Godot Fmod GdExtension

And also here is the GodotSteam extension docs on voice chat: Voice - GodotSteam

So far we have voice chat working using regular Godot AudioStream3D nodes. However it is just when trying to pass that voice chat buffer data into FMOD that is proving to be tricky

Thanks for taking a look