Forum


Notice to all users

We are migrating towards a new forum system located at community.teamspeak.com, as such this forum will become read-only on January 29, 2020

Results 1 to 14 of 14
  1. #1
    Join Date
    February 2010
    Location
    Seattle
    Posts
    69

    [Plugin SDK] New Sound System - Feedback & Complaints

    Hi TS3 Devs -

    As you know, I have been waiting since the initial announcement of this "new and better" sound system in order to continue porting my mod over to it. Up until today, the RCs/pre's did not have anything which I would consider useful. However, now that the new pre has been released - I have gotten my first glimpse into the system. Here, so far, are the reasons it is unacceptable and my requests/questions on if you plan/will you implement the following:

    1. onEditPlaybackVoiceDataEvent is a pre-processing mono stream
    This is the biggest issue I have. This is the only wavestream callback which receives the actual client ID of the stream. Since you don't provide per-client stereo streams, there is no way to implement custom 3d sound - only use your forced-logarithmic rolloff, which is not acceptable for our uses. Again, this issue stems from two points: 1, we only receive the client ID with this function, so we are *forced* to do processing here
    2. Because it is a pre-processed mono stream, we also do not have the choice of forking it off to another sound system for our own processing and output. This is also unacceptable - now, if we want to do custom sound processing, we are forced to do mono-only (we cant return a stereo stream), which means we cannot use another sound system.

    2. The 3d sound system only allows for logarithmic rolloff's
    Already stated above why this matters. In real life, obviously, sound is a logarithmic function. However - in gaming, which is TS3's major use, this is not always conducive to game play. And this is coming from only one of two game-oriented realism plug-in you have (we are very close associates with the other).

    3. onEditMixedPlaybackVoiceDataEvent is a global stream
    Again, this is another streaming issue. This stream is in fact the post-processed, stereo stream after going through 3d sound and your post-processing volume modifiers. However - its a global stream; it contains all processed TS3 output. This means we cannot do post-process per-client audio changes. Again - we are halted here due to this inability.

    ----------------------------------------------------
    What we request
    ----------------------------------------------------


    1. Provide a function, onEditPostProcessVoiceDataEvent
    This function should be post-processing and post-3d sound. E.g. it should be the stereo mix you have created prior to mixing it into your global mixing stream. Also - it would need to provide client ID for this as well, as it should be a per-client channel. This should be dead simple - you should simply be able to give us a hook prior to actually forking it into the main stream.

    2. Allow for custom 3d rolloff code
    This should be pretty simple - its almost the same functionality FMOD had - where you could provide a custom function to perform your actual distance/rolloff calculations, and simply provide a volume level. IF #1 above is done however, I could do this one myself. So its simply an optional for the less-experience sound processing coders.

  2. #2
    Join Date
    December 2010
    Location
    Australia
    Posts
    61
    A bit out of my understanding but I would suggest tune the voice of the new soundpack a bit.

  3. #3
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    Hi Jaynus,

    Your suggestions are practical and useful. We will implement them soon.

  4. #4
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    Hi TCG-Smith,

    Tune it how (in what way?)

  5. #5
    Join Date
    January 2011
    Posts
    4
    I would like to also get behind the suggestion for the ability to edit post processed sound data. My plugin doesn't do that yet, but it would add great convenience and provide future growth options. Definitely +1 to that.

  6. #6
    Join Date
    May 2010
    Location
    UK
    Posts
    12
    I can also support this, having many issues with the new system involving the points Jaynus has highlighted, his requests are well founded. Until these sytems are implemented my projects are on hold.

  7. #7
    Join Date
    July 2002
    Location
    Germany
    Posts
    2,191
    Your suggestions have been implemented, let us know how it goes.

    http://forum.teamspeak.com/showthrea...le-for-testing

  8. #8
    Join Date
    February 2010
    Location
    Seattle
    Posts
    69
    Hi Peter!

    Awesome - thanks so much. Working on it now.

    I can get onCustom3dRolloffCalculationEvent to trigger (obviously requires 3d enabled), but I can't seem to find what condition onEditPostProcessVoiceDataEvent is triggering on. I'll keep experimenting - but it doesn't seem to fire by default, anyways. Is there a setting somewhere I might need to set to get it to fire?

    I assume that function (onEditPostProcessVoiceDataEvent), is the post process (volume,3d,etc) final pre-joined mix stream.

  9. #9
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    Hi Jaynus,

    That is our mistake (read bug). It will be fixed in the next version, hopefully that will be released today. The onEditPostProcessVoiceDataEvent should always fire when someone (other than you) is speaking, and yes, it is the post volume and 3d pre joined mix stream

    So the chain is: voice data is decoded, resampled to 48khz and volume adjusted for per voice volume. Then onEditPlaybackVoiceDataEvent is called. Then it goes through 3d processing (which calls onCustom3dRolloffCalculationEvent) or, if no 3d, stereo expansion, and then onEditPostProcessVoiceDataEvent is called. After that sound gets mixed with other voices. At this point onEditMixedPlaybackVoiceDataEvent is called. After this, the stream is mixed with other sounds (waves), then other server connections, and finally, outputted to the sound backend.

  10. #10
    Join Date
    February 2010
    Location
    Seattle
    Posts
    69
    Quote Originally Posted by nwerensteijn View Post
    Hi Jaynus,

    That is our mistake (read bug). It will be fixed in the next version, hopefully that will be released today. The onEditPostProcessVoiceDataEvent should always fire when someone (other than you) is speaking, and yes, it is the post volume and 3d pre joined mix stream

    So the chain is: voice data is decoded, resampled to 48khz and volume adjusted for per voice volume. Then onEditPlaybackVoiceDataEvent is called. Then it goes through 3d processing (which calls onCustom3dRolloffCalculationEvent) or, if no 3d, stereo expansion, and then onEditPostProcessVoiceDataEvent is called. After that sound gets mixed with other voices. At this point onEditMixedPlaybackVoiceDataEvent is called. After this, the stream is mixed with other sounds (waves), then other server connections, and finally, outputted to the sound backend.
    Awesome! Thats so perfect thanks guys.

    I've started coding on that assumption - so that's good to have confirmation thats the chain (assumed so, made sense :P ).

    So far everything's working out great with the new APIs. It completely eliminates all the thread-safety issues I had with FMOD, which is absolutely amazing. Thanks a ton for the personal attention with implementation guys/gals, I really appreciate it!

  11. #11
    Join Date
    April 2010
    Location
    Neverland
    Posts
    8
    Thank's both the Ts3 developers and plugin makers like Jaynus and Headspace , for their hard work. Can't wait to see new ACRE pluggin with the new TS3 version .

  12. #12
    Join Date
    July 2002
    Location
    Germany
    Posts
    2,191

  13. #13
    Join Date
    February 2010
    Location
    Seattle
    Posts
    69
    Awesome! Just tested, works like a charm Peter. Thanks!
    Code:
    [10:58:35.61] (CTsEngine::onCustom3dRolloffCalculationEvent():34) - [165] - d:[0],v:[0]
    [10:58:35.61] (CTsEngine::onEditPostProcessVoiceDataEvent():30) - [165] - s:[480],c:[1]
    [10:58:35.71] (CTsEngine::onCustom3dRolloffCalculationEvent():34) - [165] - d:[0],v:[0]
    [10:58:35.71] (CTsEngine::onEditPostProcessVoiceDataEvent():30) - [165] - s:[480],c:[1]
    [10:58:35.81] (CTsEngine::onCustom3dRolloffCalculationEvent():34) - [165] - d:[0],v:[0]
    [10:58:35.81] (CTsEngine::onEditPostProcessVoiceDataEvent():30) - [165] - s:[480],c:[1]
    [10:58:35.91] (CTsEngine::onCustom3dRolloffCalculationEvent():34) - [165] - d:[0],v:[0]
    [10:58:35.91] (CTsEngine::onEditPostProcessVoiceDataEvent():30) - [165] - s:[480],c:[1]

  14. #14
    Join Date
    February 2010
    Location
    Seattle
    Posts
    69

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. TSX Bot speaking and playing mp3 files plus plugin system
    By Master_Jochen in forum Tools / Web Based
    Replies: 13
    Last Post: December 12th, 2013, 01:08 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •