Hi All –
I am using FMOD in some software that needs to have a very accurate frequency response. In windows, however, I am experiencing a strange issue. There appears to be a high frequency rolloff when I load sounds in FMOD.MODE.SOFTWARE. If I load sounds in hardware mode, this rolloff does not exist. It is about 3dB down around 14.25k and 6.6db down at 20K. Unfortunately I need to use Software mode (since I am using DSP), so this is not good for my application! Please see the below graph:
The other weird thing of note is that FMOD does NOT measure this way on OS X. In my Mac version of this app, with a very similar code base, both hardware and software modes measure very flat (almost identical to the black graph above).
For reference, I am initializing FMOD with the recommended [url=http://www.fmod.org/wiki/index.php5?title=PC_Configuration_Issues#Recommended_start_sequence:y57kju9i]start sequence[/url:y57kju9i]. Also, I am loading sounds with mode (FMOD.MODE.SOFTWARE + FMOD.MODE.CREATESAMPLE + FMOD.MODE.ACCURATETIME). Changing these other flags does not change the problem.
I’ve tried multiple versions of FMOD, and multiple sound cards. No luck!
Any advice would be greatly appreciated
- shess asked 8 years ago
Thanks for the welcome and the help, Pete!
Unfortunately, this doesn’t seem to solve the problem. My wave file is 44100, and I’m explicitly using setSoftwareFormat to set to 44100. So in theory, the resampler shouldn’t have to process anything. After loading and playing the file, I can query System::getSoftwareFormat and find out that it is indeed operating at 44100. The rolloff continues to be seen, however. Trying all of the resampling options above makes no change whatsoever to the response that I have posted above
Again, this is only happening on Windows, and not Mac, leading me to worry that it could be deeper than I can see. Any other ideas?
[quote:25rlai3n]My wave file is 44100, and I’m explicitly using setSoftwareFormat to set to 44100. So in theory, the resampler shouldn’t have to process anything.[/quote:25rlai3n]
That is interesting, maybe the resampling is occuring in the OS, can you check what the output sample rate is in control panel? (mine defaults to 48000Hz)
[quote:25rlai3n]Again, this is only happening on Windows, and not Mac, leading me to worry that it could be deeper than I can see.[/quote:25rlai3n]
What version[s] of Windows have you tested this with?
[quote:11p836ei]That is interesting, maybe the resampling is occuring in the OS, can you check what the output sample rate is in control panel? (mine defaults to 48000Hz) [/quote:11p836ei]
I am using an M-Audio Firewire card, which shows me its locked at 44100. The issue exists also on my internal SoundMAX card, although it won’t show me it’s sample rate.
[quote:11p836ei]What version[s] of Windows have you tested this with?[/quote:11p836ei]
We are still on Windows XP Pro (SP2) here at my company! Is there a known issue? I could get SP3 and try it out.
Peter (and anyone else interested):
I upgraded to Windows SP3, and the problem disappears with both my internal sound card and my m-audio card. There had to have been some strange interaction going on.
So long story short, SP3 fixes it. I figured this is of-note to Windows developers.
Thanks again for your help!
Hi Sean, welcome to the FMOD forums.
The issue you are seeing is related to resampling. If possible can you make your source data the same samplerate as the output rate, that would remove any need for resampling. If that isn’t possible, try changing the resample method using System::setSoftwareFormat.
The possible options are:
No interpolation. High frequency aliasing hiss will be audible depending on the sample rate of the sound.
Linear interpolation (default method). Fast and good quality, causes very slight lowpass effect on low frequency sounds.
Cubic interpolation. Slower than linear interpolation but better quality.
5 point spline interpolation. Slowest resampling method but best quality.
Let me know how it goes,
Please login first to submit.