Strong aliasing in 24 kHz mode

Hi!
I have an unexplained resampling problem. With a system frequency of 24 kHz on iOS and Android, there is irreparable aliasing. The useful signal from 8 to 12 kHz is reflected in frequencies from 12 to 18 kHz. I have tried all the options for bank settings and system interpolation settings (starting with the obvious - building banks at 24 kHz and using higher quality formats and interpolation methods), and have not yet found a way to eliminate this sound defect.
Tell me, is this a known fmod problem, or is there a way to configure the engine at this frequency so that there is no aliasing?



This isn’t really an FMOD problem as much as it is an inherent issue with data sampling. That said, we could probably add an anti-aliasing filter to deal with this problem on your behalf- I will suggest that to the Dev team.
For now however, you have two options to deal with aliasing:

  1. Use a sample rate of 44.1khz on iOS and Android. This will slightly increase audio latency, but will resolve the aliasing. You can override the iOS and Android sample rate with a call to System::setSoftwareFormat in your game.
  2. Add a 48dB lowpass filter at 12kHz on your master bus. You will lose a little bit of high end energy, but it should eliminate high-frequency aliasing
    image
    If you are targeting more than just mobile, you can also use Platform Exclusion to only include this filter on Mobile platforms.

Thank you Jeff

  1. Yes, but i’m looking for a solution for 24 kHz mode. I think 44.1 kHz is not needed, 36 kHz is enough to take these reflections out of the audible range. This is a last resort method in case I don’t find another solution.
  2. I tried to solve the problem this way - the result is on the 3rd screenshot. It looks like it doesn’t help.

Thanks! Anti-aliasing filter would be useful. I think that would be the best solution.

After some discussion with the Dev team, they have asked me to follow-up on your results with use of the different interpolation methods, which should have given you better results.
Can you please confirm that you called System::setAdvancedSettings with an alternative FMOD_ADVANCEDSETTINGS::resamplerMethod before you called System::init, and not after?
If you are finding that it doesn’t help at all, then can you please also tell me what version of the FMOD Engine you are using?

Yes

2.02.22