DSP Toolbox · Another Family of Distortion

Bit Crushing — Breaking the Digital Grid

Waveshaping bent the relationship between input and output. Bit crushing does something different: it deliberately makes the digital grid coarser. We can reduce amplitude resolution, reduce time resolution, or do both.

AUDIO → QUANTISE AMPLITUDE → HOLD / REDUCE UPDATES → OUTPUT

HEAR IT → SEE IT → MANIPULATE IT → NAME IT → SHOW THE MATHS

1 · The experiment

Start with the tone, then load a real recording. Pull the bit depth down slowly. After that, switch on sample-rate reduction. They are often bundled together in “bit crusher” plugins, but they are not the same operation.

440 Hz
−6 dB
−12 dB
BIT DEPTH8 bit
AVAILABLE LEVELS256
HOST RATE—
EFFECTIVE UPDATE RATE—
PROCESS RATE—

2 · Bit depth = the Y axis

Bit depth controls how many amplitude values are available. Fewer bits means larger jumps between allowed values.

number of levels = 2N

Input is shown lightly; quantised output is shown strongly. At low bit depths the smooth waveform becomes a staircase.

3 · A term you keep seeing…

Transfer function — and transfer curve

A transfer function describes how a system transforms an input into an output: the relationship between what goes in and what comes out.

INPUT x → PROCESS → OUTPUT y

For the nonlinear graphs we have been drawing, transfer curve or input–output characteristic is the more precise term.

This graph is not the audio waveform.
The horizontal axis asks: “What value came in?” The vertical axis answers: “What value comes out?”

4 · Bit depth and sample rate are two different axes

Amplitude resolution

BIT DEPTH → how many Y values?

Reduce bit depth and amplitudes are rounded onto fewer permitted levels.

Time resolution

SAMPLE RATE → how often does X/time update?

Sample-rate crushing holds a value for longer before allowing another update.

A typical “bit crusher” may do both. That does not make them the same process.

5 · Quantisation error is distortion

Quantisation replaces the original value with the nearest available level:

Q(x) = round(x · (L−1)) / (L−1)

where L is the number of available levels. The error is simply:

e[n] = y[n] − x[n]

The error is related to the signal, so at coarse resolution it can sound distinctly tonal, gritty or buzzy.

6 · Dither: change the error

Switch Dither ON and try 4-bit or 3-bit audio. A tiny random signal is added before quantisation.

SIGNAL + DITHER → QUANTISE → more noise-like error

Dither does not give the missing bits back. It trades correlated quantisation distortion for a more noise-like error and can preserve very low-level information statistically.

Try this: choose Dither Demo · Decaying Tone, set the crusher to 8-bit, and compare Dither OFF/ON. As the sine fades, OFF exposes the coarse, signal-related quantisation behaviour; ON makes the noise floor increasingly obvious while the fading signal remains statistically represented. Then try 6-bit for an exaggerated version.

7 · Remember the mirror?

Now try sample-rate reduction. Holding samples introduces spectral images and can create aliases. The Nyquist lesson from earlier returns: frequencies that cannot be represented correctly fold into the available band.

OUTPUT LPF is deliberately available as an experiment. Filtering can remove some high-frequency content before/around rate conversion, but a normal filter cannot magically identify aliases once they have already folded into the wanted band.

8 · What does oversampling fix?

Try changing Process Rate 1× → 8× while using a very low bit depth.

The important discovery is:

4-bit @ 48 kHz is still 4-bit
4-bit @ 384 kHz is still 4-bit

Oversampling gives us more samples in time. It does not create more allowed amplitude levels.

9 · But oversampling can still matter

If a process creates high-frequency components — nonlinear processing, hard transitions, sample-rate conversion — processing at a higher internal rate can give filtering more room before returning to the host rate.

HOST → UPSAMPLE → PROCESS → FILTER → DOWNSAMPLE → HOST

So oversampling is a tool for a particular problem, not a universal “quality” switch.

10 · The section closes where it began

We started with tiny operations and ended up explaining filters, dynamics, distortion, aliasing, oversampling, modelling and quantisation. Nothing magical appeared.

+ ADD    × MULTIPLY    z−1 STORE    MEASURE    COMPARE    FUNCTION

Bit crushing is simply another arrangement of familiar ideas: measure/represent a sample, force it onto a smaller set of values, optionally hold it through time, and listen to what information was changed.

And now the earlier digital-audio vocabulary joins the DSP toolbox:

SAMPLING → BIT DEPTH → QUANTISATION → DISTORTION → NYQUIST → ALIASING → FILTERING → OVERSAMPLING → DITHER