Bit-depth quantization
Each sample's amplitude is rounded to the nearest of only 2^bit-depth possible levels, turning smooth waveforms into a coarse, stair-stepped shape.
Upload an audio file and crush its bit depth and sample rate for a gritty, lo-fi 8-bit sound. Preview instantly and download the result as a WAV.
Set bit depth and sample & hold amount, then press Apply bitcrush.
This tool applies two purely mathematical operations directly to the decoded audio samples: amplitude quantization and sample-and-hold downsampling. Both are classic techniques behind retro, lo-fi and chiptune-style audio effects, and both happen entirely in JavaScript with no external plugins.
Each sample's amplitude is rounded to the nearest of only 2^bit-depth possible levels, turning smooth waveforms into a coarse, stair-stepped shape.
Instead of updating every sample, the output holds the last sampled value steady for a set number of samples, simulating a much lower sample rate.
Lower values from 1 to 4 bits sound extremely crushed and noisy; higher values around 8 to 12 bits give a milder, classic retro-game texture.
Higher hold amounts make the audio sound more clipped, robotic and low-fidelity, similar to an old low-sample-rate recording.
Digital audio normally stores each sample as one of millions of possible amplitude levels. Lowering the bit depth quantizes every sample down to a much smaller number of levels, which adds a rough, stair-stepped, gritty texture to the sound.
It holds each sample's value steady for a number of samples before updating, which simulates playing the audio back at a lower effective sample rate. Higher values sound more clipped and robotic, the classic low-sample-rate lo-fi effect.
Yes, this combination of low bit depth and sample-and-hold downsampling is the same basic technique used to create retro 8-bit and lo-fi chiptune-style audio effects.
Yes, upload any format your browser can decode, including MP3, WAV, M4A and OGG. The crushed result is exported as a WAV file.
No. Decoding, crushing and WAV encoding all happen locally in your browser using plain JavaScript math on the decoded audio samples. Your file never leaves your device.
More handy tools from My Panda Toolbox.