Spectral Playground
You already understand the machinery. Audio becomes frames, frames become FFT bins, we change the numbers, then IFFT and overlap-add turn them back into sound. So what else can we do between FFT and IFFT?
1 · Same machine · different rule
| Operation | Old DSP idea hiding underneath |
|---|---|
| Freeze | STORE |
| Spectral Gate | MEASURE → COMPARE → × |
| Blur | ADD / AVERAGE neighbouring bins |
| Shift | MOVE / REINDEX |
| Scramble | REORDER |
| Spectral Delay | STORE → choose different history per bin |
| Morph A ↔ B | INTERPOLATE magnitude + phase |
2 · Playground
No trick yet: the FFT frame passes through unchanged.
INPUT SPECTRUM
OUTPUT SPECTRUM
3 · STFT history · frequency across, time downward
Each row is one spectral frame. The top is NOW; older frames fall downward. This is the spectral equivalent of a delay line.
SPECTRAL DELAY × MIX ─┴→ ADD → OUTPUT
4 · What each mode means
FREEZE = STORE
Capture one spectral frame and stop replacing it. At 100% Frozen Bins, every FFT bin is held indefinitely, so the sound becomes a permanent spectral snapshot. Reduce Frozen Bins and only the strongest captured bins remain held while the other bins continue to update from the incoming audio.
GATE = MEASURE → COMPARE
Measure each bin magnitude. If it falls below a threshold, multiply it towards zero.
BLUR = NEIGHBOUR AVERAGING
Replace each bin with an average of nearby bins. Fine spectral detail spreads into broader shapes.
SHIFT = REINDEX
Move spectral coefficients through the bin array. The control behaves like a pan knob: centre = 0 Hz, left shifts the spectrum down and right shifts it up. We interpolate between neighbouring bins so the movement is continuous rather than jumping one whole bin at a time. This is not ordinary pitch shifting: components move by approximately a fixed frequency offset rather than preserving harmonic ratios.
SCRAMBLE = REORDER
Gradually map bins to other locations. The spectral ingredients remain, but their organisation breaks apart.
DELAY = STORE PER FREQUENCY
Maximum Delay runs from 0 to 2000 ms. With Delay Shape centred, all bins read approximately the same point in history. Move left and low frequencies reach further into the past; move right and high frequencies do. Mix then combines the untouched current spectrum with the delayed spectrum.
MORPH = INTERPOLATE A ↔ B
Load a second sound and move each FFT bin from Sound A toward Sound B. We interpolate magnitude and also move the phase along the shortest circular path. That means the endpoints are unambiguous: 0% = A and 100% = B, while the middle is the spectral transition between them.
PHASE: A → shortest path → B
5 · None of this required a new kind of DSP
The strange sounds come from familiar operations applied to a different representation of the signal.
We have simply gained access to the signal frequency by frequency and frame by frame.
What if one sound controls another?
That should look strangely familiar.