FMOD Ex is one of several audio middleware systems that are used in modern game development. It is integrated alongside an existing game engine technology (such as Unreal or Gamebryo) to add or extend audio playback functionality. One of the primary benefits of using a technology such as FMOD is that it shifts much of the systems design and implementation into the hands of the sound designer, rather than relegating it to a programmer, who may or may not be as well versed in audio.
Some recent game titles using the FMOD EX sound system include:
- Age of Conan
- Kung Fu Panda
- Guitar Hero III
- BioShock
- Call of Duty 4
- StarCraft II
- World of Warcraft
- Crysis
In our last tutorial, we looked at a simple means of creating raygun or laser sounds. In this tutorial, I will introduce you to the FMOD Designer tool, as well as some basic concepts used in modern game development. Thumbnail image by skipthefrogman.
NOTE: A full introduction to the use of FMOD Designer is beyond the scope of this tutorial. For our purposes, we will assume that you have at least some familiarity with the program or have read the User Guide enough to understand the basic navigation and concepts.
Tools Used
- FMOD Designer 4.18
- FMOD Sandbox 4.18
Step 1
The first thing I’ve done with our raygun sound is to separate the three ‘bursts’ from the original final mix. Each of these is trimmed neatly so the attack is immediate, and each file is reduced to mono. Here's what the files sound like:
Zap 1
Zap 2
Zap 3
Game Development Tip: While there are exceptions, in most game audio situations where sounds are going to be placed in three-dimensional space, working with a mono audio file is preferred. The pan information in a stereo audio file is not necessary (and sometimes can have unpredictable results) because the location of the sound will be determined by its position in the game world, relative to the ‘listener’, which could be the player’s avatar, the camera, etc.
Step 2
Now that we have three individual variations of the raygun sound, we’re going to create a new FMOD Project and Event that will randomly play one of the three sounds.
From the File menu, create a new FMOD Project. Call the project ‘Raygun’. I’ll call the Event Group ‘weapons’ and name my first event ‘raygun_oneshot’.

Step 3
We’ll configure our Event Properties next. Most of the defaults will be adequate, but let’s make some changes that will make our raygun event more approprate for use in a game scenario.
- Set ‘Max Playbacks’ to 3 - this will allow us to trigger up to 3 raygun sounds simultaneously before we need to steal or fail one to start a new event.
- We’ll set ‘May Playbacks Behavior’ to ‘Just Fail If Queitest’. This behavior will tell the engine to fail the quietest raygun event if a 3 events are playing and a 4th one is triggered.
- Mode is set to 3D - this will ensure that we can make the raygun sound emanate from a specific location in the game world. Frequently, weapon sounds may be attached to ‘muzzleflash’ type effects, such that if a weapon is fired, both a ‘flash’ from the muzzle is seen, and a corresponding sound is played.
- 3D Rolloff is set to ‘Linear’. This is a common misunderstanding with FMOD - many users leave the rolloff to ‘Logarithmic’, which follows real-life volume curves (as the distance doubles, the volume halves). The problem with using this type of rolloff in a gameworld is that quite frequently, you want more specific control over what sounds are playing within a given viewport or game screen. If rolloff is set to ‘Logarithmic’, you may hear a weapon from a character over 500 meters away, even though the player may have no idea where the sound is coming from because they can’t see an enemy. There are a host of other reasons, but the simple solution is to set rolloff to ‘Linear’, which gives you more control over when and how and where sounds are heard throughout a given game.
- We’ll set our 3D Min and Max distance to 15 and 40 respectively. This ensures that we’ll hear the raygun sounds at minimum volume if we are within 40 meters, and will hear them at full volume if we are within 15 meters. Outside of 40 meters, the event will be inaudible.
- Lastly, we’ll set the Oneshot property to ‘Yes’ to ensure that when a raygun event is triggered, it automatically stops itself once the sound is finished playing.

Step 4
Next, we’ll create a wavebank in which we’ll place our raygun sounds.
- Click on the Wave Banks tab.
- In the Banks column, right click and select ‘Add Bank’.
- Give the Wave Bank a descriptive name.
The properties for an FMOD Wave Bank (also known as an FSB) will vary greatly depending on a number of factors specific to your game.
As an example, however, I’ll set this wavebank to load into memory (this keeps the sounds active and availble for immediate use in game), set compression to ADPCM (offers a good balance of sound quality, compressed file size and low CPU utilization), disable Syncpoints and set Max Streams to 0, since we wont be streaming any of our raygun sounds from a disk.
Game Development Tip: Wave Banks will vary greatly depending on your target platform (Windows, Xbox 360, Wii, Playstation 3, etc.), the type of sounds in the bank, how the sounds are used in the game, and how your game engine uses audio resources. While further discussion of these topics is outside the scope of this tutorial, no doubt you’ll continue to learn about them as you work in game development.
Step 5
Now that we have a Wave Bank, we’ll add our raygun sounds to the bank.
- Click on the Sound definitions tab.
- Right click in the Sound definitions column to ‘Add empty sound definition…’
- Call the definition “raygun_3_variations”.
- Right click on the newly created definition and ‘Add wavetable…’
- Shift-select the three raygun variations and click ‘Open’.
- In the Sound definition properties, set Play mode to ‘RandomNoRepeat’. This ensures that when the event is triggered, it will randomly select one of the three raygun sounds.
- Set Volume randomization to “-3”, which will randomize the volume by 3dB when the event is triggered.
- Set Pitch randomization to “0.4”. This value is currently set in Octaves, but if you prefer working with other units, you can specify tones or semitones in the FMOD Event Properties view (Pitch Units and Pitch Randomization Units).
You can now audition the sound definition by clicking the ‘Play’ button atop the Sound definitions properties window.

Step 6
The final step in making our raygun event is to add the sound definition to the event.
- Click on the Event editor tab.
- In the grey area of layer00, right click to ‘add sound’.
- From the dropdown list, add ‘raygun_3_variations’.
- Right click on the newly added sound definition and select ‘Sound Instance Properties’.
- Ensure that Loop mode is set to ‘Oneshot’.

Our raygun event is now complete, and once the project is ‘built’, it will be ready to use in an actual game!
If you’ve enjoyed learning a bit about game audio design, please let us know in the comments. We are considering more tutorials along these lines, but we need to know if you find them valuable. We appreciate your feedback!
Plus Members
Source Files, Bonus Tutorials and
More for $9 a month for all TUTS+
sites in one subscription.













User Comments
( ADD YOURS )Craigsnedeker September 26th
All the ones on top are the same, with the effects right?
( )West September 26th
I’ll need you to clarify that question to be of any help, craigsnedeke.
( )Mr. Tunes September 26th
what a practical idea for a tutorial! i’ll be sure to give this a shot soon, looks good.
( )ableDAN September 26th
Very nice! Thank you. Keep them coming please.
( )Starry Nebula September 26th
Thank you for the awesome fmod designer tips! Pretty awesome!
( )Joe McLaughlin December 9th
I found this VERY VERY useful! thank you!
( )more FMOD designer stuff soon please!!!
Thank you!
NR February 9th
Great! Please keep these coming.
( )Joe Dirt February 16th
Great, yes please add to this, I’ve just discovered fmod and would love some more tips.
( )artur February 23rd
this is great!!!! More, more, more!!!
( )Wit March 25th
Thanks for this helpful tutorial.
( )This is my first time with FMOD and it’s not easy to get started.
hope to see more
Ben Abraham April 2nd
Just to echo the above comments – yes, quite a helpful little tutorial to someone like myself who is dipping their toes in the FMOD waters. Thanks again.
( )thiago May 5th
thanks for this tutorial! very useful for beginners like me… would definitely enjoy more tutorials on FMOD. thanks!
( )Anonymous Audio Dev May 6th
I have to point ou that the information given about Min/Max distance is incorrect as the example is using logarithmic rolloff. If rolloff is set to linear then the sound will attenuate between the min and max as described, albeit not in a psychoacoustically correct way. However, when used with logarithmic rolloff, 3D Max distance sets the distance at which the volume STOPS attenuating. The actual rolloff curve is determined from the 3D min distance in the normal logarithmic fashion i.e. half volume for a doubling of distance. In the example given the sound will play a 0dB between 0 and 15 meters then attenutate to -6dB at 30 meters. At 40 meters it will be just over -12dB. Outside of 40 meters it will stop attenuating and will continue to play at ~-12dB regardless of position. FMOD’s maximum attenuation is -60dB which with a 3D min distance of 15 will not be hit until an in-game distance of 15360 meters. therefore you need to set your 3D Max distance to at least 15360 or you sound will be audible wherever you are in your game world. Assuming that your game world is that big, of course.
( )West May 15th
You’re absolutely right, Anonymous. In almost all of our games we have the rolloff set to Linear. Ini some places we do use a custom rolloff driven by the distance parameter, but the above example was an oversight. I appreciate the correction.
( )m4rkei May 9th
yes please! more!
thank you, great post!
( )Mike August 20th
Hey West this was great I have never seen any legit Game Audio tutorials on the web at all and I’m member of GANG! Do you know of any other good resources for this topic? Please keep tutorials on this topic coming. I know about FMOD but this one went a bit over my head. Maybe a FMOD or Wwise for Noobs tut?
( )Damian October 18th
Agreed. This is one of the only Fmod tutorials I could find online. I’m a first time user too and keen to learn more about Fmod and would also like to learn Wwise too.
Bring on more game audio tuts!!
( )