Advertisement
Game Audio

Making a Set of Sound Effects That Feel Equally Loud (Without Normalizing the Life Out of Them)

Equal loudness is a perceptual problem, not a level problem. LUFS and RMS disagree on short sounds, and over-compression removes the depth that makes a set feel alive. This covers category-specific matching targets, why integrated LUFS is the wrong tool for a 200 ms impact, and a workflow that balances without flattening.

Normalizing a set of sound effects to the same number is easy. Making them feel equally loud is the part that matters, and it is a different problem. A 60 ms UI click and a 1.5 s explosion can be normalized to the same integrated LUFS reading and still feel wildly mismatched, because the ear does not average a short sound the way a meter does. The click either cuts through or it doesn’t; the explosion either has weight or it doesn’t. Matching their averages can make both worse.

The standard that game audio actually uses is not a single normalization target applied to every file. It is a category-specific reference combined with a tolerance, measured with a method that respects the length and role of the sound. The rest of this guide is about how to use those references without flattening the set.

The Game Loudness Standard Is a Target, Not a File-Level Command

The measurement basis is ITU-R BS.1770, the algorithm behind LUFS/LKFS and true-peak metering. The Interactive Entertainment Sound Developers (IESD) group at the Game Audio Network Guild recommends normalizing a console title’s average loudness to −23 LUFS with a tolerance of ±2 LU, with true peak not exceeding −1 dBTP[reference:0]. Sony’s ASWG-R001 gives the same −23 LUFS ±2 LU target for home console content, and −18 LUFS ±2 LU for portable platforms [reference:1]. Wwise’s documentation repeats the −23 LUFS target and notes that a ±1 LU deviation is acceptable in practice, because interactive content cannot be normalized as precisely as a linear program[reference:2].

The critical detail is what that number applies to. The recommendation is for the average loudness of the title, measured over a representative period — “at least one hour” of gameplay is the IESD’s guidance [reference:3], and Wwise’s guidance says “minimum 30 minutes” of representative content[reference:4]. It is not a target for every individual sound effect. Applying −23 LUFS to each file individually is the category error that produces a flat, lifeless set: a short click and a long explosion cannot both sit at the same integrated loudness and still feel like the same event family.

What the Asset-Level References Actually Look Like

The game audio literature uses a different measurement for individual assets. Tencent’s audio director, writing for Audiokinetic, gives the widely adopted RMS references for console assets: Music −16 dB, Ambience −16 dB, Dialogue −12 dB, In-game SFX −16 dB, UI −16 dB, with peaks below −3 dB and roughly ±2 dB of allowed deviation per sound[reference:5]. These are RMS values, not LUFS values, and the distinction is the key to matching without flattening.

Category Asset-level RMS reference Why this number
Dialogue −12 dB The volume reference for the whole mix; dialogue must remain intelligible above everything else
In-game SFX −16 dB Sits below dialogue by roughly 4 dB, leaving room for voice without disappearing
UI −16 dB Short sounds need the same average energy to be heard against longer beds; RMS makes short sounds comparable to long ones
Ambience −16 dB Continuous beds need enough level to establish space, but must stay below dialogue and SFX
Music −16 dB Same reference as SFX and ambience; music competes less when it shares the same average energy rather than being pushed up

A different reference set, from a University of Michigan game audio guide, puts menu sounds and alarming sounds at a higher integrated level (around −16 LUFS) and ambient sounds closer to −24 LUFS, with SFX at −23 ±3 LUFS on a Sony surround target. The numbers differ because they are describing different measurement scopes and different mix philosophies, not because one is wrong. What stays constant is the principle: the reference is per category, and it is expressed as a range, not a single file-level target.

LUFS and RMS Disagree on Short Sounds, and That Is Why “Normalize Everything to −23” Fails

RMS measures average signal energy over a window. LUFS applies a K-weighting curve that approximates the ear’s sensitivity across the spectrum and uses gated measurement to ignore silence and very quiet passages[reference:8]. That difference is small for a two-minute music track and large for a 200 ms impact.

Integrated LUFS, by design, is a long-term measurement. Wwise’s documentation defines three scopes: Momentary (400 ms sliding window), Short-term (3 s sliding window), and Integrated (gated measurement over the entire captured period)[reference:9]. A 200 ms impact barely registers on the Momentary scope and is not meaningfully represented in Integrated at all. Forcing every short sound to hit a target derived from Integrated LUFS either over-compresses the sound to make its short energy average out to the target, or forces the sound’s peak up to compensate — and both are audible as damage.

The asset-level references in the table above use RMS for exactly this reason: RMS gives a stable, comparable average for short and long sounds alike, without the long-term gating that makes Integrated LUFS the wrong tool for a one-shot. The SFX duration guide covers how category duration changes the appropriate measurement window; the matching rule is that the measurement scope should match the sound’s role, not the other way around.

Over-Compression Is the Mechanism That Removes the “Life”

The phrase “normalizing the life out of them” describes a specific technical outcome. When a compressor is used to raise a sound’s average level toward a target, it reduces the difference between the loudest and quietest parts of the sound. If the compression is heavy enough, the dynamic range is compressed out of the sample, and the result has detail but no depth — “there’s no hidden element or depth to the audio”[reference:10]. The transient that made an impact feel like an impact is reduced along with everything else.

The over-compression problem is not unique to game audio, but it is especially damaging there because the dynamic range of an impact is doing gameplay work. A weapon hit’s attack tells the player that the hit landed; a footstep’s transient tells them that the step is on a particular surface. Compressing those transients to hit a loudness target trades information for level. The over-processing guide covers how to detect this by ear and by level-matched comparison; the matching context adds a specific trigger: if a sound only reaches its target loudness after heavy compression or limiting, the target is probably being applied at the wrong scope.

The alternative is not “no compression.” It is light, broadband compression used to shape the envelope, combined with level matching that respects the sound’s peaks. Wwise’s mastering presets are described as optimized to process a raw mix to reach −24 LUFS integrated without mastering, and the recommendation is to still land around −24 LUFS ±2 after processing, with compressor and limiter thresholds set relatively low [reference:11]. The point is that the level target is met by the mix, not by crushing the individual sounds.

A Matching Workflow That Keeps the Transients

The procedure below is ordered so that the perceptual matching happens before any level targeting. The goal is to match the set to each other first, then to the category reference, rather than normalizing each file to a number in isolation.

  1. Group by category, not by loudness. Put all footsteps together, all UI clicks together, all impacts together. Matching happens within a category first, because a footstep is compared to other footsteps by the player, not to an explosion.
  2. Match the quietest and the loudest in the group by ear, at the level the game will play them. Not in solo, not at a normalized monitoring level. The quietest footstep and the loudest footstep should feel like the same character on the same surface, with the same weight. The attack-time guide is relevant here: if two footsteps differ in attack time, matching their average level will not make them feel equally loud, because the ear reads the sharper attack as louder regardless of RMS.
  3. Measure the matched pair with an RMS meter, not Integrated LUFS. The gap between the quietest and loudest footstep should be small — within roughly the ±2 dB deviation the console reference allows [reference:12]. If the gap is larger than that, the ear matching in step 2 was compensating for a timbre difference rather than a level difference. Fix the timbre, then re-match.
  4. Check the category average against the reference. Once the group is internally matched, measure the group’s average RMS and compare it to the category reference (SFX/UI/Ambience around −16 dB, dialogue around −12 dB for console). If the group is outside the reference by more than a couple of dB, move the whole group, not the individual files.
  5. Check true peak before checking loudness. A sound whose true peak exceeds −1 dBTP (or the platform’s ceiling) will be turned down by the engine or the platform, undoing the level match. Wwise’s guidance for mastering puts true peak below −1 dBTP on a console title[reference:13]. Trimming the peak is usually a transient-preserving operation if it is done with a limiter rather than a compressor.
  6. Test the group in context before testing the whole set. Play the matched footsteps in a scene with music and dialogue. If they disappear or dominate, the issue is the bus level or the mix hierarchy, not the individual files. The mix hierarchy guide covers how to reserve space for each category so that per-sound matching survives into the game.

The Set-Level Test: Does It Feel Like One World, or One Spreadsheet?

The final check is not a meter reading. It is whether the set feels like it belongs to the same game. A matched set should pass three informal tests.

The category test. Play a footstep, a UI click, and an explosion in sequence. They should feel like three different weights of event, not three files that have been pushed to the same average. If the click feels as heavy as the explosion, the set has been over-normalized; if the explosion feels light, its transient was compressed away.

The fatigue test. Play the set for ten minutes at normal volume. If the set is over-compressed, the ear tires sooner, because there is no dynamic relief. The ducking and sidechain guide covers the system-level relief that keeps a mix from fatiguing; the asset-level relief is the dynamic range that survives matching.

The device test. Play the matched set on a laptop or phone speaker. If the set was matched by Integrated LUFS, the short sounds will often disappear on small speakers because their energy is concentrated in a band the speaker does not reproduce well. If the set was matched by RMS and checked for attack, the short sounds will still read. The laptop and phone speaker guide covers the frequency-band side of this; the loudness side is that RMS matching is more likely to survive a small speaker than integrated-LUFS matching, because RMS does not average away the transient.

A set that passes all three feels equally loud without sounding equally processed. The sounds are matched, not flattened. The reference numbers are doing their job — they are keeping the categories in proportion — and the transients are still intact, which is what makes the set feel alive.

Advertisement