I did try searching a but but right now I think I’m not smart enough about FMOD to know what to look for. I’m hoping some kind person can give me a shove in the right direction.
I’m working with the TeamSpeak 3 standalone SDK for VOIP in a game context. All works nicely but now the next level is to change the sound. What we have is crystal clear voice. What we want is more like "radio". There’s someone on the team that understands Designer enough to make events that can process the voice so it sounds more like we want it. These are the objectives and raw materials. I’m just struggling to figure out how to combine the pieces to get what we want.
I understand Designer is meant to spit out content that is used with the FMOD Designer API. The TS3 SDK uses an FMOD System object, either of it’s own creation or I can replace with my own but I think this means I’m limited to working with FMODex APIs at most. The TS3 SDK library interface doesn’t seem to know anything about the Designer API or events.
What I get from the TS3 SDK is a callback function whenever a remote person starts talking. This callback gets an FMOD::Channel* as an input parameter and the channel contains the voice sound created paused. I can operate on the channel object and then on return from the callback it plays the content. I think what I need to do is figure out how to use the effects created with Designer to modify the sound output (either by hooking effects to the channel or playing other content to start at the same time as the voice content). I’m just not at all sure how to connect the dots from the output files that come out of Designer and the callback function that I can insert for the TS3 SDK code to call.
Does any of the above even make sense?? Given the TS3 SDK context can work produced with Designer be used?? If so, are there examples of how to do that around the place that I could look at or could someone give me advice on where to start digging in the documentation to figure out a plan??
Thanks in advance for any advice.
- boxer asked 5 years ago
First, thanks for the reply. It sounds to me like the "simple" option isn’t there if the Event system and the lib handing me FMOD::Channel objects are not going to play nicely together.
I think that leaves me with two options: 1) try and get the effects I want with combinations of mixed in wav files started with the Channel created event callback and the built-in DSP choices applied to the channel object; or 2) something more creative with the output from Designer.
If it’s possible to create an EventSystem and pull the System object out of that, is it also possible to unwrap the EventSystem content and get pointers to the effects created by my cohort in the Designer tool and then manually apply them to the Channel object with the FMODex API — is that what you meant about the low level API??
Unfortunately your only real option is to use the FMODEx API and apply DSPs to the FMOD::Channel in code. You cannot get the effects from Designer, they aren’t instantiated until you play an event and reaching inside an event and re-hooking channels in channel groups probably isn’t really a good idea.
Thanks again — clarification is very useful. It certainly helps me to narrow down the possibilities that I need to educate myself on for this little exercise. I’ll focus in on FMODex and what I can do with DSP objects to try and replicate the kinds things prototyped with Designer.
One bump if I may.
Is what I’m asking so dead obvious as to not be worth responding to or does the question make no sense or something?? I guess I’m a little surprised that the post didn’t even rate a "rtfm" reply
Perhaps I should simplify or change the question a bit…if I have code that only knows about FMOD::Channel objects today, is there a way for me to use output that a fellow team member has built using the Designer tool or is it only possible to use such things via the Designer API??
Generally Designer works by specifying source wavs and defining events with effects. The source wavs get built into an FSB and the EventSystem will handle the loading and playback.
Firstly if you want to initialize TS3 using your Designer system, you can use EventSystem::getSystemObject to pull out the low level FMOD::System from a created EventSystem and pass it in.
Since TS3 is only giving you an FMOD::Channel there isn’t much you can do to get it in an Event, it probably backs onto a DSP object inside their code, you cannot feed that into Designer.
You would need to apply the effects to the channel using the low level API.
Please login first to submit.