1. Reading your file
When you drop or choose a file, your browser hands WAVR its contents directly from your disk. WAVR first reads any tags it finds (ID3 tags in MP3s, Vorbis comments in FLACs, and NAME, AUTH and ID3 chunks in AIFFs) so it can show the artist, title, album and BPM in the queue.
It then decodes the audio into raw samples. For MP3, WAV, FLAC, OGG, M4A, AAC, OPUS and WEBM, it uses the decoder built into your browser's Web Audio engine. Chromium-based browsers can't decode AIFF, so WAVR includes its own AIFF and AIFF-C reader for 8, 16, 24 and 32-bit integer and 32 or 64-bit float files.
2. Processing
Your settings are applied to the decoded samples, in this order:
- Sample rate and channels: if you change either, WAVR renders the audio through the browser's offline audio engine, which resamples and mixes down to mono or stereo.
- Trim silence: removes samples at the start and end that stay below −60 dB (an amplitude of 0.001).
- Normalize: finds the loudest sample and scales the whole track so that peak lands at −0.3 dBFS.
3. Encoding
| Format | Encoder | Notes |
|---|---|---|
| MP3 | MP3 encoder based on Shine (LGPL) | Constant bitrate, 128–320 kbps, 32/44.1/48 kHz. Tags are written to the file. |
| WAV | Written by WAVR | 16 or 24-bit integer, or 32-bit float PCM. |
| AIFF | Written by WAVR | 16 or 24-bit big-endian PCM. |
| FLAC | Written by WAVR | Lossless, 16 or 24-bit, with dither when reducing to 16-bit. |
| M4A | Your browser's AAC encoder (WebCodecs) | AAC-LC in an MP4 file, 128–192 kbps. |
| OGG | Your browser's Opus encoder (WebCodecs) | Opus in an Ogg file, 96–256 kbps, always 48 kHz. |
M4A and OGG depend on encoders your browser provides. WAVR checks for them when the page loads and greys out any format your browser can't produce.
4. Downloading
The finished file only exists in your browser's memory. Clicking download saves it to your device like any other download. Closing the tab discards everything.
What goes over the network
Loading the page downloads WAVR's own code. After that, the only network traffic is the conversion counter, which talks to stats.wavr.website:
- Every few seconds while the tab is visible, WAVR asks for the latest totals to display.
- After each successful conversion, it sends one record: output format, source file extension (up to five letters), file size in bytes, length in seconds and a timestamp.
It never sends audio, file names, tags or anything that identifies you. If the counter can't be reached, WAVR counts conversions in your browser's local storage instead and the panel reads "This device".