0
0

Hello, I am working on a Teamspeak 3 plugin for ArmA2 and I was wondering if its possible with a channel object to split that into multiple channels, so that you can apply DSP effects to each one individually, but their source is the same?

For example, I am implementing direct voice communications between players which takes their 3D position into account and the voice rolls off with distance. The player can also have one or more radio devices, for that the channel placement would only need to be left or right or center, but the quality of the sound would be affected by distance and other things our terrain model takes into account. For that I would want to apply DSP effects for distortion and probably add a noise osc to generate radio static.

This would come into play where you might be hearing them speak, but also hearing them on radio at the same time.

Is this possible with channel objects?

Thanks! :)

  • You must to post comments
0
0

Hi Nou, welcome to the FMOD forums!

A channel is effectively an instance of an FMOD::Sound, rather than splitting into multiple channels it would be easier to create multiple channels from the initial Sound object. Is there a reason why you wouldn’t do it that way?

  • You must to post comments
0
0

Thanks, I actually came to that conclusion yesterday, but haven’t tried it. :) Found out we can’t use the plugin SDK in TS3 to get to the FMOD objects so we have to go with our own client, so I haven’t been able to test yet.

I saw that you can get the system object from the channel, and just create a new channel off of that original channels sound object.

  • You must to post comments
0
0

Yeah that should work as long as the channel is still valid. Channel stealing can potentially be a problem when relying on channel handles but for your application I don’t think that would be a problem.

  • You must to post comments
0
0

Thanks! :)

Related to TS3 again we found that the standalone client SDK does not work with official TS3 servers so we are back to the plugin or nothing at all. We did find out though that we can open our own custom playback device via the plugin, which takes an FMOD system object.

We still can not access the creation of channels though via the plugin. Is there a way to monitor from the System object when channels are created and to get those channels so we can begin to affect them with our needed effects?

  • You must to post comments
0
0

No, there is no way to monitor channel creation from the FMOD::System. You could possibly use System::getChannel to get the channels from the System.

This System object you’re passed do you have any control over the initialization of it?

  • You must to post comments
0
0

It appears we can pass our own System object, so we technically can initialize it any way we want. How that interacts with the TS3 system beyond that point (the sending of the object to TS3) is beyond me though.

  • You must to post comments
0
0

I think the easiest way to monitor channel creation would be to create a thin wrapper for System::playSound which also fires a callback, set it to be the userdata of your System object. You can then retrieve that userdata from the system object in your plugin.

  • You must to post comments
0
0

Thanks again Peter, I was trying another way too where I was monitoring the TS3 client speaking status and then getting the most recently created channel, but that was providing to be inconclusive…

No worries though, the TS3 devs are awesome folks as well and they are exporting the rest of the FMOD event handlers to their plugin SDK! ๐Ÿ˜€

Thank you for providing an awesome sound framework. We hope to do some pretty interesting stuff with it for the ArmA2 community! ๐Ÿ˜€

  • You must to post comments
0
0

That sounds great, best of luck! Let us know if you have any FMOD related questions/issues.

  • You must to post comments
Showing 9 results
Your Answer

Please first to submit.