50 · Spectral Domain
Draw on the Spectrum · Spectral EQ
We have learned how to get into the frequency domain and safely get back out again. Now stop looking at the bins and change them.
1 · The entire idea
Y[k] = X[k] × G[k]
X[k] is the incoming FFT. G[k] is the gain curve we draw. Y[k] is the changed spectrum. Once again, the operation doing the work is simply MULTIPLY.
AUDIO→
WINDOW→
FFT→
× YOUR CURVE→
IFFT→
OVERLAP-ADD
2 · Load something and draw
DRAWABLE GAIN CURVE · drag across frequency
Cursor frequency—
Gain—
FFT size1024
Overlap75%
Load an audio file to begin.
The display is logarithmic from 20 Hz to 20 kHz (or Nyquist, if lower). FFT bins themselves remain linearly spaced internally; the log axis is only the way we draw and edit the curve.
3 · Before and after
INPUT SPECTRUM
OUTPUT SPECTRUM
Pull part of the curve down. Those FFT coefficients are multiplied by smaller values. The corresponding part of the output spectrum falls away.
4 · What did you actually draw?
0 dB → G[k] = 1
leave that frequency unchanged
leave that frequency unchanged
−60 dB → G[k] ≈ 0.001
almost remove it
almost remove it
The gain value is applied to the complex FFT coefficient, so its magnitude changes while its phase is retained.
5 · We have built a filter from the other side
TIME DOMAIN
delay → × coefficients → +
delay → × coefficients → +
FREQUENCY DOMAIN
FFT bins → × gain curve → IFFT
FFT bins → × gain curve → IFFT
These worlds are connected: multiplication in frequency corresponds to convolution in time.
Next · Spectral Playground
EQ is only the beginning
FREEZEGATEBLUR
SCRAMBLEDELAYMORPH
The analyser has become an instrument.