Audio normalisation
Audio normalizer
Peak mode scales the waveform so its loudest sample hits your target. LUFS mode measures perceived loudness to ITU-R BS.1770-4 and applies the gain needed to reach your target. Both apply a single constant gain — no compression, no limiting.
…or drag files and folders here. Add as many as you like — everything is processed on this device.
.3g2 .3gp .aac .aif .aifc .aiff .amr .caf .flac .m4a .m4r .m4v .mkv .mov .mp3 .mp4 .oga .ogg .opus .qt .wav .wave .weba .webm
In one paragraph
Two completely different operations get called “normalising”, and conflating them is why so many normalised files still sound uneven. Peak normalisation looks for the single loudest sample and scales everything by one factor so that sample lands at, say, −1 dBFS. It guarantees headroom and tells you nothing about how loud the file sounds. A sparse acoustic track and a dense pop master peak-normalised to the same level differ by 10 dB or more in perceived loudness.
Loudness normalisation measures the whole file the way hearing works — K-weighted, gated, averaged over 400 ms blocks per ITU-R BS.1770-4 — and then applies the gain that brings that measurement to your target. That is what streaming platforms and broadcasters use, and it is what makes a batch of files play back at a consistent level. Sonic Batch measures every file individually and reports the number it found alongside the gain it applied.
Does this change the audio quality?
Normalisation applies one constant gain to the whole file. It changes level, not dynamics: nothing is compressed, limited or reshaped. Because it is a single multiplication, it is mathematically reversible in a lossless format — though re-encoding a lossy format still costs a generation.
- Raising the gain of an already-clipped recording makes the clipping louder. It cannot be repaired by normalising.
- Reaching a LUFS target sometimes requires gain that would push peaks above 0 dBFS. The true-peak ceiling takes priority: the gain is reduced and the shortfall is reported per file.
- Peak scaling is not loudness normalisation, and this page never labels it as such.
A worked example
Levelling a podcast series recorded across six months
- Drop all the episode files in — any mix of formats is fine.
- Choose LUFS mode with a −16 LUFS target and a −1 dBTP ceiling, which is the usual spoken-word specification.
- Convert all. Each row shows the measured input loudness, the gain applied, and whether the true-peak ceiling limited it.
- Download the ZIP; the manifest records the measurement and gain for every file so the numbers are auditable.
Targets worth knowing
−16 LUFS with a −1 dBTP ceiling for mono podcasts and spoken word; −14 LUFS for music intended for streaming platforms, which is roughly what Spotify and YouTube normalise to anyway; −23 LUFS for EBU R128 broadcast delivery. For sample libraries and one-shots, use peak mode at −1 dBFS instead, because a 200 ms drum hit has no meaningful integrated loudness. If you are unsure, measure first on the LUFS meter page and then decide.
Supported formats, limits and browser notes
Sonic Batch decodes with the browser when it can (faster, no engine download) and falls back to the self-hosted WebAssembly engine when it cannot. Every combination below works in every listed browser; the column only tells you which decoder does the work.
| Input | What it is | Chrome | Firefox | Safari | iOS |
|---|---|---|---|---|---|
| MP3 | The universal lossy format. Plays on essentially every device made since 1998. | Native | Native | Native | Native |
| WAV | Raw PCM samples with a small header. Perfect fidelity, roughly 10 MB per stereo minute. | Native | Native | Native | Native |
| M4A | Apple’s default AAC container. Better quality than MP3 at the same bitrate. | Native | Native | Native | Native |
| AAC | Bare AAC frames with no MP4 wrapper — used by broadcast streams and some hardware. | Native | Partial | Native | Native |
| OGG | Royalty-free lossy codec. Standard in game engines, Godot, Unity and Wikimedia. | Native | Native | Engine | Engine |
| Opus | The best-sounding lossy codec below 128 kbps. Used by WhatsApp, Discord and YouTube. | Native | Native | Partial | Partial |
| FLAC | Lossless compression, typically 50–60% of WAV size, bit-identical when decoded. | Native | Native | Native | Native |
| AIFF | Apple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools. | Partial | Partial | Native | Native |
| M4R | An M4A file with a .m4r extension. iOS only lists it as a ringtone if it is ≤ 40 seconds. | Partial | Partial | Native | Native |
| AMR | Phone-call speech codec: 8 kHz mono, 4.75–12.2 kbps. Decode only — nothing should be created in it. | Engine | Engine | Engine | Engine |
| CAF | Apple container used by older iOS Voice Memos. Usually holds ALAC, IMA4 or raw PCM. | Engine | Engine | Partial | Partial |
| 3GP | Legacy phone recording container, normally AMR-NB or low-bitrate AAC audio. | Engine | Engine | Partial | Partial |
| MOV | QuickTime video from iPhone and DSLR cameras. Audio is normally AAC or PCM. | Partial | Engine | Native | Native |
| MP4 | The standard video container. Its audio track is almost always AAC. | Native | Partial | Native | Native |
| WebM | Open container used by browser recorders and YouTube downloads. Audio is Opus or Vorbis. | Native | Native | Partial | Partial |
| Output | Encoder | Bitrates / depth | Sample rates | Tags |
|---|---|---|---|---|
| MP3 | libmp3lame | 32–320 kbps | 8–48 kHz | Yes + artwork |
| WAV | pcm_s16le | 16, 24, 32-bit | 8–96 kHz | Yes |
| FLAC | flac | 16, 24-bit | 8–96 kHz | Yes + artwork |
| M4A | aac | 32–320 kbps | 8–48 kHz | Yes + artwork |
| Opus | libopus | 16–256 kbps | 8–48 kHz | Yes |
| OGG | libvorbis | 32–320 kbps | 8–96 kHz | Yes |
| AIFF | pcm_s16be | 16, 24-bit | 8–96 kHz | Yes |
- Max per file
- 400.0 MB
- Max per queue
- 4.00 GB
- Max duration
- 4:00:00
- Max archive
- 1.50 GB
These are enforced ceilings, checked before any decoding starts, not measured maximums — a file over the limit is rejected rather than allowed to exhaust the tab’s memory. Real-world capacity is lower on older phones, which is why the scheduler runs one file at a time on iOS and Safari.
Where your audio goes
Nowhere. Your file is read from disk into this browser tab with the File API, decoded and encoded by code running in that same tab, and handed back to you as a download. It is never transmitted.
That is a structural property of the application, not a policy promise: there are no API routes, no server actions and no third-party processing services in this project, so there is nothing capable of receiving a file. The page’s Content-Security-Policy also restricts connections to this origin, and the automated test suite includes a browser test that fails if any network request during import, preview, conversion or download carries media bytes.
The trade-off, stated plainly:results live in your tab’s memory until you download them. Closing or reloading the page discards them. There is nothing on a server to recover, because nothing was ever put there.
Troubleshooting
The file did not reach the LUFS target I set.
The true-peak ceiling stopped it. Reaching −14 LUFS on a very dynamic recording can require peaks above 0 dBFS, and clipping is worse than being 2 LU quiet. The shortfall is shown per file — lower the target or accept the reported result.
Two files measured the same but sound different.
Integrated loudness is an average. A track with a very wide loudness range can match another on the integrated figure while feeling different. Check the loudness range and short-term maximum on the LUFS meter page.
The output is quieter than the original.
That is normal when the source was mastered loud. Most commercial music sits around −8 to −10 LUFS, so normalising to −16 reduces it. That is the point: consistency across a set.
Frequently asked questions
What is the difference between peak and LUFS normalisation?
Peak normalisation scales to the loudest single sample and says nothing about perceived loudness. LUFS normalisation measures perceived loudness with a K-weighting filter and gating, then applies the gain needed to reach a target. For consistency across files, LUFS is the correct tool.
Does normalising reduce audio quality?
A single gain change is essentially transparent. In a lossless format it is reversible. In a lossy format the re-encode required to write the file costs a generation, which is unrelated to the gain itself.
What is true peak and why does it matter?
Digital samples do not capture the peaks that occur between them. A signal that never exceeds 0 dBFS in samples can exceed it once reconstructed by a DAC or a lossy decoder. Sonic Batch measures true peak with 4× oversampling and keeps output under your ceiling.
Can I normalise a batch to the same loudness?
Yes — that is the main use. Each file is measured independently and given its own gain so they all arrive at the same target, which is exactly what per-file measurement is for.