WAV to Ogg converter
The problem is bytes, not codecs: a sound-effect bank of uncompressed WAV is too heavy for a first load. Ogg Vorbis is the lossy container that open-source toolchains and browser games accept, so the work is a budget calculation — and the WAV stays as the master.
The target codec is lossy, so the original samples are not restored bit for bit.
Processed on your device. Files aren’t sent anywhere.
Write the budget before touching the codec
Illustrative: a web game ships 40 one-shot effects recorded as WAV, and the asset folder weighs 11 MB. On a throttled phone connection that is a loading screen nobody waits through. The brief is therefore written in bytes: every effect must cost a few kilobytes, and the whole bank must fit inside a couple of megabytes.
One file goes per run, up to 60 MiB and 600 seconds of audio, so a bank is converted file by file with the same quality setting.
- Drag one WAV effect onto this page; the local FFmpeg worker loads on first use
- Choose quality: Low for UI clicks, Balanced as the default, High for ambience and crowd noise
- Convert, then read the reported codec, duration and channel count before moving to the next file
- Rename the output to the engine's convention and keep the WAV master in a separate folder
Before you encode the bank
Is Ogg the codec or the container?
Does Ogg keep the WAV intact?
What does the quality setting mean?
Are my files uploaded?
Will the sample rate be forced to 44.1 kHz?
What the payload looks like per effect
Short files are where container overhead matters most: a very short one-shot can end up dominated by framing rather than audio data. The numbers below are illustrative, and the point is the ratio, not the exact figures.
| Effect | WAV size | Ogg at Balanced | Notes |
|---|---|---|---|
| 0.4 s UI click | ~35 kB | ~4 kB | Container overhead is a large share of a file this short |
| 1.2 s footstep | ~105 kB | ~9 kB | Short loops need a listen check, not just a size check |
| 3 s explosion | ~265 kB | ~22 kB | Wide stereo transients survive Balanced well |
| 6 s ambience loop | ~530 kB | ~55 kB | Quiet material is the case that needs High quality |
Naming the bank so the importer stays boring
A converted bank is only useful if the engine can find it. Keep the stem name stable and put the quality decision in the folder, not in the filename.
- One folder for masters (WAV), one folder for shipped assets (Ogg)
- Same stem in both folders so a re-encode is a copy, not a guess
- Loop points live in the engine's asset table, not in the file name
Why loops get their own quality decision
A loop plays many times, so its artefacts are heard repeatedly. Quiet ambience loops are the worst case: Vorbis spends bits on loud material first, so a low setting can make a soft loop shimmer. Encode loops at High and listen to two full cycles.
Failure modes worth checking before shipping
A bank that converts without errors can still ship broken files. The engine probes the result and compares codec and duration with the source, which catches truncation; the rest is a listen pass.
- Silent files: a bad source decode produces an Ogg that plays but contains nothing
- Truncated loops: a shorter duration than the source means the loop point is now wrong
- Quality too low for crowd noise or ambience, which reads as a watery smear
- Playback support: test Ogg on the actual target devices rather than on the editor
What to keep for the next release
The shipped Ogg files are disposable. The WAV masters are the thing that lets a future release re-encode at a different quality without inheriting today's loss. Re-encode from the masters, never from the shipped Ogg.