Plugin idea - FFT Summing

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

Hello,
It could be very good, so to sum two tracks without phase comb filtering.

FFT -> SUM Magnitudes -> iFFT

Regards

Post

Leaving the phase data intact would also leave any phase difference between the tracks so would not change anything.
Don't F**K with Mr. Zero.

Post

Handling the phase differences between the two tracks would likely require some special handling.

If the track waveforms are not highly correlated then running an FFT on each track separately would likely result in the phase values for a given bin being different between the 2 frames (depending on the exact specific frequency represented in the bin values). So the single "phase" value provided to the iFFT would have to be computed (possibly averaging, linear interp, running phase sum, random?, etc.) or selected from either of the original track FFT bin (imposing the phase of one track on the other).

Post

Could be interesting to have separate balance controls for bin amp and phase. Maybe even for each bin.
I should start to experiment…

Post

In the original post, it is ambiguous as to what is to be done with the phases, but assuming that they are to be ignored, discarded, all set to zero or other fixed value, or some similar type of action, the following should be relevant:

Re(iFFT(Magnitude(FFT(A)) + Magnitude(FFT(A delayed by X samples)))) => Spike at t = zero with noise following if the signal A is real-valued. Another spike at the end. The same result is true for A by itself. Essentially this causes all of the sinusoidal components of A to start at t = zero and come back together at the end. The result is similar to an IR followed by a reverse-time version.

Needless to say, this would not work if intended as a method to simply prevent comb filtering, for example caused by combining an audio recording with a slightly delayed version.

Post

Though I think, as soon you tinker with the phase you probably smear all transients…

Post

Tj Shredder wrote: Thu Jan 01, 2026 10:26 pm Though I think, as soon you tinker with the phase you probably smear all transients…
In my Classic series of amp sims, the Width control calculates the FFTs of the incoming Left and Right signals, then randomizes the phase by an amount that is subject to various controls determining the distribution type, the random number seed, the maximum amount of deviation, etc. It worked pretty well, but with larger and larger randomization and deviations, a drone type of sound is eventually produced, as you described. The constituent sine waves have decreasing correlation as the randomization and deviations increase.

Post

On the Plogue Bidule Spectral utilities, it separates phase/magnitudes in a way, that the summing in magnitude is perfect, using either original phase.
Unfortunatly the algorithm fails after a couple minutes playing.

Post

Nope
Don't F**K with Mr. Zero.

Post

the catch is phase isn't just throwaway data - it's all your timing/transient info. iFFT with arbitrary phase = smeared vocoder-y mess. You'd be trading comb filtering for different artifacts.

BUT there's a version that could actually work: coherence-weighted phase interpolation. Basically detect which freq regions are "same source, phase-shifted" vs actually different content. High coherence - align the phases. Low coherence - just pick one. Then sum magnitudes with this hybrid phase.

Existing tools like Auto-Align do per-band phase correction but not really this kind of spectral blending. Could be a cool experiment - whether it sounds "good" or just "different" is another question lol.
Seth — Fine Increments

Wavefield (wavetable-based spectral filter): https://www.fineincrements.com/wavefield

Free wavetable generator:
https://www.fineincrements.com/free-wavetable-generator

Post

The Plogue Bidule example I gave, it summs perfectly two signals.
It separates Frequency/Magnitudes, summing only the Magnitudes.

Post Reply

Return to “Effects”