I have to say, I’m very impressed with the new fmod API and feature set. It’s definitely come a long way in the past few year. I’m currently tasked with improving the audio engine for our company’s PC game, and fmod seems to have the features to do what I’m envisioning. I have a couple of issues that perhaps you could clarify for me.
It appears that fmod does not have a software equivalent of EAX2 or I3DL2. Would one have to create some equivalent DSP effects to simulate it (like adding a simple reverb)? Granted, most computers have EAX2 support nowadays, but it’s important to have a software fallback for bad drivers, especially if we’re going to commit to creating dry samples for these environments.
We use mp3 files exclusively in the game for sound effects, and so we obviously have to do quite a bit of caching to reduce the CPU load. It seems as though the most practical way to implement a caching system with fmod is to use the filesystem hooks to pull data from the caching system, with the caching system performing the actual mp3 decoding on-demand if needed, or doing predictive pre-caching otherwise (using a Sound object). Can I use Sound::getData() to manually decode the mp3 data, and then use a different Sound object (opened as a stream) to read the raw PCM data? This seems like it would work, but it’s hard to tell until I start coding.
Also, due to some technical issues (our game is updated online), we don’t currently support dll downloading / updating. Would it be possible to statically link fmod (Win32 build, w/ VC6)? There are some other options available, of course, but this would be by far the simplest solution for us.
Thanks in advance for your time!
- JamesB asked 12 years ago
You’d need to purchase a commercial license to be able to statically link FMOD, as I believe you get the source that way. The free license doesn’t permit static linkage to FMOD in any way (not even packing the DLL into the executable and extracting & loading it on demand).
[quote="Bruce":i01ftyk4]You’d need to purchase a commercial license to be able to statically link FMOD, as I believe you get the source that way. The free license doesn’t permit static linkage to FMOD in any way (not even packing the DLL into the executable and extracting & loading it on demand).[/quote:i01ftyk4]
Yes, sorry, I didn’t make myself clear. This would certainly be assuming that we paid for a commercial license and received the source.
[quote="brett":365rdfmz]We do have a software reverb fallback, it was added as part of the ‘reverb’ API in the last version. Currently it still needs more work to make it eax2 like, but there’s something there. Maybe you haven’t tried it.[/quote:365rdfmz]
No, I haven’t tried it yet. I’m simply looking through the API help at the moment to try to figure out if fmod will do what we need. I’ll be coding up some test programs this week.
[quote="brett":365rdfmz]I wouldnt bother, in the next release fmod will support realtime compressed samples (not streams) so you can just leave your data stored as mp3 and it will just play them.[/quote:365rdfmz]
Playing them realtime sounds handy, but I’m concerned about how much of a cpu load that might put on lower-end systems (decoding 20 to 40+ sounds at once, for instance). This seems less than optimal, unless you do some sort of internal caching to prevent sounds from decoding over and over unnecessarily (like weapon sounds).
Has a date been announced for the upcoming version you mentioned? We have some updates for our game planned, and I’d have to find out if this update would be in time for that.
[quote="brett":365rdfmz]Yes there is a static library project with the commercial license.[/quote:365rdfmz]
Excellent, that’s good to hear.
Please login first to submit.