0
0

Hi guys,

I’m trying to benchmark the number of concurrent sounds I can play on the iPhone and right now, the figure worries me a bit.

Without any audio playing, the profiler shows 4% CPU consumption (3.3% DSP). This is already too expensive for a game.

With 7 sounds (IMA-ADPCM from separate fsb files) the consumption in DSP is up to 17.5% for a total of 18.5%. The same occurs in regular PCM.

Of course, this means my sounds are being played back in software, however, is there a way to play stuff in hardware on the iPhone? If there is, can you tell me what kind of setup you would advise?

Also, I want to be using DSP effects on my sounds. If adding effects on hardware sounds isn’t possible, I could play some in software and leverage some nice results this way.

Many thanks,
Fred

  • You must to post comments
0
0

You seem to be under the assumption that the iphone has any hardware at all for sound. It doesnt. It has to be software mixed.

If you lower the output rate it will improve performance. I’m fairly sure we benchmarked at 22khz about 10% for 32 pcm sounds, so you might have to show how you got those numbers. I assume you’re not playing them as streams and are instead playing them as in memory samples?
3% for sound is not too expensive, the usual use in a game for audio is between 5 and 10% from our experience with past titles.

  • You must to post comments
0
0

Hi brett,

I was indeed under the assumption there was hardware decoding but you’re right, there isn’t.

Now, here is my setup, starting with data layout:
26 looping samples 44100Hz, stereo, PCM16 wave files loaded in memory.

I tried both pure PCM16 and IMA encoding. I forgot to use the FMOD_CREATECOMPRESSEDSAMPLE flag for the profiling figures in my first post. After a recompile, the % increased to about 32% for the DSP for 7 sounds.

Here’s how I initialize the system:
I set the software mixer to 44100Hz, PCM16, 2 output and 2 input channels and linear resampling.

System is inited in normal and enable profile mode, with 1000 channels available.

For the 4% consumption comment I made, sorry, I guess I’m too used to hardware helping out.

In any case, thanks for helping out.
Fred

  • You must to post comments
0
0

Hi,
set the output to 22khz, don’t use FMOD_CREATECOMPRESSEDSAMPLE (let it decompress into memory first) and optionally turn off interpolation and you should get the speed you are after.

  • You must to post comments
0
0

Would there be any performance benefit from either a) outputting mono instead of stereo, or b) using less than 22kHz (e.g. 16kHz or 11 kHz)? Any other performance tips, even at the expense of quality?

  • You must to post comments
0
0

mono output wouldnt really save you anything (and i’m not even sure if we support this i’ll have to verify it) but yes lowering the output rate is the best way to increase performance, at the sacrifice of quality.

First thing though is I would recommend turning off interpolation, or matching your samples to the same rate as the output rate, so that they are not resampled at all, saving cpu time.

  • You must to post comments
Showing 5 results
Your Answer

Please first to submit.