49 · Spectral Domain

Overlap & Reconstruction

We solved the FFT boundary problem by fading the edges of each block. Great. But now we've created another problem: we faded the edges of each block. Luckily, audio engineers already know the basic idea behind the solution.

1 · You already know this: the crossfade

Put two edits hard against each other and a discontinuity can click. In a DAW, we overlap the regions and fade one down while the next fades up.

Overlap / X-fade0%
Hard joinYES
TransitionBUTT EDIT
Overlap-add is not literally a DAW crossfade algorithm. But the intuition is excellent: instead of trusting one hard boundary, let neighbouring pieces overlap while their weights trade over.

2 · Now make the regions FFT blocks

BLOCK
→
WINDOW
→
FFT
→
PROCESS
→
IFFT
→
OVERLAP + ADD

Each analysis frame begins at a new position called the hop. If the hop is smaller than the block, the blocks overlap.

overlap = N − hop size H
overlap % = (1 − H/N) × 100

3 · Slide the windows across each other

Block N1024
Hop H512 samples
Overlap50%
New frame every10.67 ms

Each curve is one neighbouring block's weighting function. The block size stays the same; changing overlap changes how far apart their starting positions are.

4 · ADD the overlapping contributions

Now look underneath the individual windows. Each coloured strip is a neighbouring block. Its colour fades with the window weighting, so overlapping blocks blend into one another rather than looking like hard-butted regions.

A good overlap/window combination keeps the reconstruction continuously covered. Poor combinations reveal pale gaps or uneven bands.

MATHEMATICAL CHECK · sum of overlapping window weights

Minimum sum—
Maximum sum—
Variation—
Result—

Try Hann + 50% overlap. In this simplified window-sum demonstration, neighbouring periodic Hann windows complement each other and the interior sum becomes essentially constant. Then try 0%, 25% and different window types and watch bumps or holes appear.

5 · Why hop size is different from FFT size

FFT SIZE N
how long each analysis looks
↓
bin spacing / observation duration
HOP SIZE H
how far we move before the next analysis
↓
frame/update spacing

At 48 kHz, a 1024-sample FFT observes about 21.33 ms. With 50% overlap, the next frame starts only 512 samples — 10.67 ms — later.

This is why a spectral process can use a relatively long FFT while still producing analysis frames more frequently than once per whole block.


Hop size is like a frame rate

If you have worked with video, motion capture or frame-based analysis, hop size is an intuitive idea. The FFT analyses one block of audio, then moves forward by the hop size and analyses again.

A large hop means fewer spectral snapshots per second. A small hop means more frequent snapshots — and therefore more overlap between neighbouring blocks.

spectral frame rate = sample rate ÷ hop size

For example, at 48 kHz with a hop of 512 samples:

48,000 ÷ 512 = 93.75 spectral frames per second

The important distinction is that FFT size determines how much audio is contained in each analysis frame, while hop size determines how often a new frame begins.

Because the frames can overlap, a new analysis can begin before the previous block has finished.

6 · The important technical wrinkle

For actual FFT processing, perfect reconstruction depends on the complete analysis window + synthesis window + hop scheme. Some systems window before the FFT and again after the IFFT; in that case it may be the combined weighting that must satisfy the reconstruction condition.

analysis window × synthesis window + hop strategy → reconstruction

The general family of conditions is often discussed using COLA — Constant OverLap-Add. The exact valid combinations depend on the window definition and processing method.

So don't memorise “Hann always means 50%”. Remember the useful principle: choose the window and hop as a reconstruction system, not as unrelated settings.

7 · From analyser to processor

AUDIO
→
WINDOWED FRAMES
→
FFT
→
CHANGE BINS
→
IFFT
→
OVERLAP-ADD

Up to now we've mostly looked at spectra. But if we can transform a block into bins, change those bins, transform it back and reconstruct the overlapping blocks...

Next · Stop looking. Start drawing.

Draw on the Spectrum · Spectral EQ

Take the magnitude of individual frequency bins and multiply them by a gain curve.

Y[k] = X[k] × G[k]

Our old friend MULTIPLY is about to become a drawable spectral filter.