Optimal setDSPBufferSize parameters for PSVita


(James) #1

I’m hearing some crackle when playing ordinary one-shot sound effects like a button press. I have experimented with setDSPBufferSize to different values and can certainly make the crackling -worse- doing this, but… what -should- they be?

My situation:
Running on PSVita - fmod studio - 1.06.17
All my source assets are 44.1 khz
For the vita build target they are all FADPCM @ 22.1 khz
Frame rate varies between 10-60 (but the intention is that it will be 30, and it is 30+ in the specific situation im testing) (this also corresponds to the frequency that ‘fmod update’ will be called).


(James) #2

News update:

I set up the simplest test case possible.

The only thing loaded is the master bank and one other bank that contains a couple non-streaming sounds. I press a button, it plays one sound. Nothing else is going on. It is running flat out at 60 fps, with a timer verifying that < 20 ms is elapsing between fmod update calls.

Yet I am hearing some poping sounds at random points through the duration of the sound effect (~50% of the time it sounds normal) (the poping seems to be more frequent towards the middle/end of the sound, might not ever actually occur right at the beginning, but i can’t really say definitively).

Any ideas what this could be? Or how do I diagnose? Because I’ve tried twiddling every fmod parameter i could find with no effect other than sometimes making it pop more. So I think i’ve exhausted my ability to find this through trial and error.

I also tried changing the compression type and bit rate on the bank and rebuilding it, also to no audible effect.


(Mathew Block) #3

See below answer Any luck playing the event in our examples? If you still have trouble please contact support@fmod.com.


(James) #4

I found that the particular devkit I was testing on was the problem - running on a different device, a testkit, the audio sounded fine.


(Mathew Block) #5

The optimal DSP buffer size for PS Vita is 4 buffers of 512 samples, this is the default.

EDIT:
Issue resolved, suspected faulty devkit.