Skip to main content

How to: Explosion sound

Explosion sounds are very common in video games.

An explosion sound is full of random frequencies and noise. The key to creating an explosion sound is to use an Oscillator, but to modulate its frequency wildly with a Vibrato powered by WhiteNoise.

Here is an example of how you could make the sound of an explosion using .esfx:

Play(duration=1.25s) {
Vibrato(freqModulation=1000) {
WhiteNoise
}
Oscillator(wave=$triangle, freq=40)
LowPass(freq=[300,0])
HighPass(freq=40)
Envelope(attack=0.01s, decay=0.07s, decayTo=0.5)
}

The Oscillator function generates a triangle wave at 40 Hz, but this frequency is modified wildly (1000 Hz) by the Vibrato function, which creates the random frequencies that make up the explosion sound.

The LowPass function only keeps the rumbling low frequencies of the explosion. The freq parameter is an array that ramps from 300 Hz down to 0 Hz over the course of the sound, which models how an explosion sounds loud and detailed with its first burst of energy, but then only the low frequencies remain as the energy dissipates.

The HighPass function filters out the sounds below the range of human hearing. This stops the explosion sounding too muddy and keeps it sounding sharp and impactful.

Finally, the Envelope function makes the sound ramp up to maximum volume over 0.01s as the explosion starts. The sound then decays over 0. 7s to 50% volume. This gives the explosion a short burst of loud sound at the start for a fraction of a second, followed by a longer tail of quieter sound as the energy dissipates. Players will hear this as the initial sharp bang of the explosion followed by the rumbling of the explosion as it fades away.