Jump to content
  • Advertisement

Iveco

Member
  • Content Count

    8
  • Joined

  • Last visited

Everything posted by Iveco

  1. Hello, I am using XAudio2 2.6 and I noticed many of my sounds are having slight glitches at the end. When I disabled my FXMasteringLimiter all clipping and glitches/clicks/pops at the end of the sounds were gone. But I need to have a compressor/limiter to prevent the peaks when too many sounds are playing. Quote from someone: "The mastering limiter applies a dynamic volume-adjusting algorithm that helps ensure that mixing lots of sounds never clips, and therefore avoids the distortion. On one project of mine, it completely cured some horrible distortion when a lot was going on." So how come the internal XAudio2 XAPO is so weak that it actutally does produce glitches when being used? I am doing something wrong? Regards, Iveco
  2. Thank you very much for you reply. Getting help with native XAudio2 implementations is rare, and knowledge is golden (or kept like secrets) in this area. >> I mean do you directly start and stop your source voices with a new buffer for each sound? << Correct. I've attached the FXMasterLimiter to the MasterVoice with initialstate set to true and I am playing all SourceVoices directly with a newly created buffer for each sound, while the SourceVoices are pre-created on game start and only a fixed amount of them exists with preconfigured wave format settings. >> If you are stopping the voice you might want to use the XAUDIO2_PLAY_TAILS flag to make sure the playing buffer is not truncated which could potentially produce pops/clicks. << I've tried this, but it did not have any effect. I think it's used for Reverb effects and co. and would make sense to use there, but it didn't help with my particular problem. I've even tried delaying the Stop() for a few frames or using OperationIDs to delay the stopping proccess, but this didn't help. I also played around with the FXMasterLimitere EffectParamers (Loudness and Release) but no combination helped. >> Do the sounds you are submitting always start and end with silence? << Here you got me on the right track. The soundeffect I was playing didn't have a silence on the end. After adding a minor silence at the end, I've got rid of the glitch after stopping the SourceVoice. I am stopping the SourceVoices as soon as the BuffersQueued is zero and the pCurrentBufferContext is NULL. ---------------- Thank you very much for your piece of information which helped me finding this problem. I will keep sure the mastered non-loopable sound assets will have a short silence on start and beginning. Do you know which length at the end would make sense best? Is there any standard for this? Regards from Germany, Iveco
  3. Iveco

    The XAudio2 graph

    You can use XAudio2 callbacks or use the bufferstate of the SourceVoice directly, and check if this is empty. XAUDIO2_VOICE_STATE state; sourcevoice->GetState(&state); if (state.pCurrentBufferContext == NULL && state.BuffersQueued == 0) { // SOUND FINISHED } When you shutdown the game, you can stop all you running SourceVoices and delete them afterwards (prior shutting down XAudio2). Obviously this will produce glitches, lower the volumes for a few frames (fadeoff) until destroying it.
  4. Thank you very much for your detailed answer!
  5. Hello, I am using XAudio2 and have two questions about the built-in effects. 1) XAudio2 built-in effect: "Volume Meter". For what reason can this be useful or needed (in a game)? This can just display volume levels? 2) In XAPO, there is a XAPOFX class having a few more effects. I do understand these except one: "FXMasteringLimiter" -> A volume limiter. For what reason should I use a volume limiter, if I can control the volumes manually on each SourceVoice? What kind of reason should I have to put this on a MasteringVoice? What kind of goal can I reach with this? Last but not least: Does someone have experiences with volumecurves in XAudio2 (especially X3DAudio) to control the volume rolloffs per distances? How do I set the maximum volume distance per each emitter, does every emitter need to have it's own volumecurve then? The CurveDistanceScaler factor shouldn't be changed, when it's correctly setup? Thanks for any help. Regards, Iveco
  6. I need a small help with volume curves & distances. It works fine I can hear a difference in the loudness when I am near or far from the object, but the problem is the volume never goes really down to zero even if DSPSettings.pMatrixCoefficients[0] and DSPSettings.pMatrixCoefficients[1] are both 0.0 (correct with the right CurveDistanceScaleFactor) (I am using the default linear curve) - so that I can still hear the object in thousands of meters away. It works fine in the 3DExample, but I followed it explicitly and when I have 0.0 & 0.0 pMatrixCoefficients I still hear the sound. What can be the reason for this? My Curve is: 0.0, 1.0, 1.0, 0.0 and the matrixcoef's are correctly to 0.0 at my wished distance but I can still hear a sound. Edit: The problem has been solved. I noticed that a change via SourceVoice->SetChannelVolumes() (with the values from pMatrixCoefficients) worked fine. After further investigation, I found out that the problem was the SourceVoice's sendlist. After using a correct sendlist I was able to use SetOutputMatrix() again. [Edited by - Iveco on September 15, 2009 6:30:30 AM]
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!