So I’m stuck (against a deadline of course) with a strange error. I’m using FMOD designer to create everything, then loading fmod up into a game engine that my team has built, and when I attempt to get the event by calling getEventByGuidString, the FMOD_RESULT I get is "FMOD_ERR_FORMAT". (all other areas of the system have been tested, and fmod seems to load up just fine, has plenty of free memory, etc.). Now if I’m in FMOD Designer, I can see my audio files, they’re all standard .wav files (with duplicates made in various programs for testing, audacity, logic, protools, reason), and they play just fine in designer. I’m also able to spit our the .fev file and open it up in FMOD Event Player, and that works just fine.

In game though, no dice, I continue to get ERR_FORMAT…I was unable to find any help in hours of googling and sifting through the fmod documentation. This engine worked previously, and no code in the engine has changed, so I’ve at least narrowed the problem to Fmod Designer, or the audio files, and it’s seeming more likely that it’s FMOD designer. Any thoughts?

Open up the ‘Banks’ tab, that shows the sound banks for the project. A sound bank is our high performance custom file format which contains all the sound.

It is important to pick the right bank type and compression format. There are three bank types, load into memory and stream from disk are the two most useful. Streams are good for long sounds such as dialog and music, load into memory is good for shorter sound effects and menu sounds. There is a variety of possible compression formats as well, some are platform specific and others are not. If you developing for PC then MP2 and ADPCM are probably your best bet, if you just want uncompressed you can choose PCM but it’s usually worth using some compression.

Ah, that’s really helpful thanks! Does the format of the raw sound file that I import into FMOD Designer matter? (assuming it’s a format FMOD is compatible with, like .wav). I tried to add a multichannel (10-channel) sound before, which I’m guessing is what broke things, as I put it into the same bank as everything else. I’ve since deleted that multi-channel file (not using it for now) and set my current (and only) bank to load into memory, and MP2 compression. I’m still getting the same error in my engine, with the FMOD_ERR_FORMAT error. I’m curious if I need to rebuild my FMOD Designer Project from scratch to solve this issue, or if the issue will remain because it’s tied to my source audio in some way? Like maybe some of my audio files have incompatible sample rates or something?

Could this error possible be caused by version issues? The version I was using before was FMOD Designer 4.36 I think, and now I’m using the latest (i believe it’s 4.4). Would the dlls and libs I link need to match up exactly with the version we use?

Yeah the versions should match. Normally it would give you FMOD_ERR_VERSION but because of a recent change in our sound bank file format (it went from FSB4 to FSB5) you are getting FMOD_ERR_FORMAT. I would reccomend updating the API to match the FMOD Designer version and that should fix your issues. We usually offer some backward/forward compatibility in the API but the FSB change was quite significant and broke compatibility.

This was the issue. We were using an older version of the fmod .dll and .libs, but the soundbank we were reading was created in v.4.4. Updated our dll and lib files in the game engine, and now all is working well. Thanks so much for the help.

FMOD_ERR_FORMAT generally means the audio format in the FSB file is not compatible with the platform you are running on. To get additional information about the cause of an FMOD error you can link to the logging version of FMOD. What platform are you running your game on? What encoding format are you using in FMOD Designer?

I’m running the engine on PC (windows 7 on this machine). I wasn’t aware you could choose what format FMOD Designer would encode in, where can I look at that? I’ll try out linking to the logging dll. I’ve never used the logging version, do I need to handle anything extra in code to spit that log file out? Thanks for the help