Quick Audio Level Pro

The ear is not a measuring instrument. It adapts in seconds, it depends on your monitors and your room, and it cannot give you a number you can act on. Quick Audio Level Pro reads the actual samples of every AudioClip in your project and tells you, in numbers, which sounds clip, which get buried, and which are out of step with the sounds beside them — then does the same for the mixer buses they play through.


WHAT EYES AND EARS MISS

• A clip whose every stored sample sits at −5.6 dBFS can still reach −2.5 dBTP when it plays, because the signal passes between samples. Nothing in Unity shows you this.

• A sound can be 21 dB under the rest of your game and simply never be heard.

• Your files can all be safe while the mix clips anyway, because the bus adds gain after the fact.

• Two footsteps 12 LU apart sound like a bug; an explosion 12 LU above a footstep is correct. Loudness only means something relative to the sounds beside it.


WHAT IT MEASURES

• Integrated loudness — ITU-R BS.1770-4, K-weighted, two-stage gated (LUFS)

• True peak — 4x oversampled, catches peaks between samples (dBTP)

• Distance from target, and the exact dB change that fixes it

• Folder consistency — the spread inside a folder and the clips that break it

• Head and tail silence padding — wasted memory and late-sounding one-shots


MIXER BUSES

Files are only half the problem. The window maps clips to the mixer group they are routed through, rolls the measured loudness up per bus, and flags what only appears there: a bus whose content clips once the group gain is applied even though every file is safe, two buses so close in loudness that one masks the other, and a bus nothing is routed to. A Match target button shows the gain change before it is applied, never after.


Unity stores no link from a clip to a bus — the link only exists on an AudioSource — so the tool finds it by scanning prefabs. A clip with no source is reported as not routed rather than guessed at.


MEASURED, NOT ASSUMED

Every number comes from sample data. Nothing is read from an import setting, which is why the report can disagree with what your project claims — and disagreeing is the only reason it is worth reading. The K-weighting filters are re-derived at each clip's own sample rate, because the constants everyone quotes are for 48 kHz and shift the answer on a 44.1 kHz clip.


COMPRESSED CLIPS

Measured, not assumed: AudioClip.GetData returns silence for CompressedInMemory, Streaming, and anything with Load In Background on — and in those cases loadState still reads Loaded, so it cannot be trusted as the signal. Four of six ordinary import configurations would make a naive tool call your loudest clip silent. This tool decompresses such a clip temporarily, measures it, and puts your import settings back exactly as they were, even if something throws in between. When it still cannot read the samples it says so rather than reporting zero.


SAMPLE CLIPS

Six deliberately mismatched clips with a written note of what the report should say about each: one that clips at +2.1 dBTP, one 21 dB under target, one with 0.80 s of silence before the sound, and two UI sounds 0.7 LU apart that are correctly left alone.


CLEAN AND SAFE

• 100% Editor-only — nothing ships in your build, zero runtime overhead

• Namespaced code (Krykftn.QuickAudioLevelPro) — no global scope pollution

• Without Unity's Audio module the tool switches itself off quietly instead of filling your console, and a one-click Setup window turns it back on


REQUIREMENTS

• Unity 2022.3 LTS or newer

• Unity's Audio module (com.unity.modules.audio) — part of Unity


HONEST LIMITS

Loudness is judged inside a folder, not across the project, so organise your audio into folders that mean something or the consistency check has nothing to compare against. The bus view only sees clips referenced by a prefab's AudioSource; sounds played purely from script cannot be traced this way and are listed as not routed. True peak uses 4x oversampling with a 16-tap windowed kernel — accurate to about a tenth of a dB, enough to catch clipping, not a mastering-grade meter. Measuring reads every sample of every clip, so scan a folder rather than everything on a large project.