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.
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?
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
I’ve done some digging into the GDExtension and the features its API supports, and it seems like that the extension really only supports Studio API features, and it doesn’t have robust support for Core API features like manually assigning programmer sound callbacks, and the advanced Core API sound creation needed to support feeding an external stream of audio into a sound.
Due to the limited support I can offer for third party integrations, I unfortunately can’t really offer any other suggestions besides simply using Godot’s audio system to handle the voice chat, or doing some more in-depth coding to either add the features you need to GDExtention yourself, or potentially creating an FMOD plugin that you can load and access in Godot to feed the audio data to. I’d recommend opening an issue on GDExtension’s github if more robust programmer sound support is a feature you want.