Convert Audio Bit Depth

Pick an audio file, a target bit depth and a dither algorithm — requantized in your browser, nothing is uploaded.

Try:
Converted audio

Change audio bit depth in your browser

Bit depth is how many bits each PCM sample uses — the word length of your audio. It sets the dynamic range: roughly 6 dB per bit, so 8-bit gives about 48 dB, 16-bit about 96 dB (the CD and streaming standard) and 24-bit about 144 dB (the studio standard). This tool requantizes an audio file to the depth you pick and writes lossless WAV or FLAC. Everything runs locally in your browser tab via ffmpeg compiled to WebAssembly, so your audio is never uploaded to a server. Anything ffmpeg can decode works as input: wav, flac, mp3, m4a/aac, ogg, opus and more.

Going down in depth throws away low-order bits. Doing that by plain truncation turns the discarded remainder into quantization distortion — correlated with the signal, and most audible in fades, reverb tails and quiet passages. Dither fixes it: a tiny amount of noise is added before the truncation so the error becomes uncorrelated hiss instead. That is why the dither control defaults to triangular (TPDF) rather than off.

Worked example

You have a 24-bit master, mixdown.wav, and the distributor wants 16-bit. Upload the file, leave Target bit depth at 16, leave Dither at triangular, keep Output format at wav, and you get mixdown-16bit.wav — the same length and sample rate, 16-bit words, dithered. The file is about a third smaller (24 bits per sample → 16). Want the noise tucked further out of the ear's most sensitive band? Switch Dither to shibata and re-run.

Target bit depths

Dither algorithms

Limits and edge cases

FAQ

Do I need dither when converting 24-bit to 16-bit?

Yes, in almost every case. Dropping from 24 to 16 bits discards eight bits per sample; without dither the rounding error tracks the signal and shows up as gritty distortion on fades and quiet passages rather than as neutral noise. TPDF (triangular, the default here) is the standard, safe answer. The one time to choose none is when the material is already 16-bit or will be dithered by a later stage — dithering twice just stacks noise.

Which dither should I pick — triangular or shibata?

triangular is the neutral default and is never wrong. Noise-shaped options like shibata keep the same total noise energy but move it into frequency bands where hearing is less sensitive, so the master sounds quieter even though a meter reads the same. Use shibata for a final 16-bit music master, low_shibata if the shaped hiss feels too bright, and stay on triangular for speech, archival transfers or anything that will be processed again.

Does converting to 24-bit or 32-bit float improve the sound?

No. Going up in depth stores the exact same sample values in wider words — it cannot recover detail the original recording never had. It is genuinely useful before further processing, where the extra headroom and precision stop successive edits from accumulating rounding error, and 32-bit float in particular can hold levels above 0 dBFS without clipping.

Why can't I export 8-bit or 32-bit float FLAC?

The FLAC format itself only defines integer sample sizes up to 24 bits in practice, and the encoder here accepts 16-bit and 24-bit. Requesting 8-bit or 32-bit float FLAC returns an error naming the supported combinations instead of silently writing something else. Choose WAV, which carries all four depths.

Does this change the sample rate or the file's length?

No. Only the word length of each sample changes; the sample rate (44.1 kHz, 48 kHz, …), the duration and the channel count all pass through untouched. To change the rate, use the separate audio-resampler tool; to change container or bitrate, use audio-convert.

Is my audio uploaded anywhere?

No. The page downloads an ffmpeg WebAssembly build once and then processes your file entirely inside the browser tab — the audio never leaves your device, and there is no account, queue or server-side storage.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool audio-bit-depth-converter 'url=https://example.com/input' 'bit_depth=16' 'dither=triangular' 'format=wav' 'keep_metadata=true'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/audio-bit-depth-converter/?url=https://example.com/input&bit_depth=16&dither=triangular&format=wav&keep_metadata=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.