Flanging Effect

Basically it's the same as echo, delay time usually sweep sinusoidally from 0.5ms to 2ms.
Basic algorithm in C++:
while (--sampleFrames >= 0)

```    {
n = n++; // initialized with n = 0
deltai = delayMin + (delayMax-delayMin)/2 *(1+ sin(2 * pi * freq * 1/44100 * n)); // sweep 0.5 – 2 ms

// Delay line using Lagrange interpolator
di = floorf(deltai) - 1;
t0 = deltai - di;
t1 = t0 - 1;
t2 = t0 - 2;
t3 = t0 - 3;
b0 = -t1*t2*t3/6;
b1 =  t0*t2*t3/2;
b2 = -t0*t1*t3/2;
b3 =  t0*t1*t2/6;

//Lelf channel only here
if (inPointL == delayBufferSize)
inPointL = 0;
delay_bufferL[inPointL++] = gain*(*in1) +  room * feedbackL;
for (i=0;i<4;i++){
outPointL[i] = (inPointL - di + i);
if (outPointL[i] < 0)
outPointL[i] += delayBufferSize;
listateL[i] = delay_bufferL[outPointL[i]];
}
feedbackL = (b0*listateL[0] + b1*listateL[1] + b2*listateL[2] + b3*listateL[3]);
feedbackLOut = lowShelf(feedbackL); // used lowsheld filter within the loop
}```

Algorithm diagram by Dr. Abel

VST plug-in
flanging.cpp
flanging.hpp
flangingMain.cpp
flanging.dll

STK codes in C++ [Flanging.tar.gz]

Matlab codes to study the relationship with delay sample vs the frequency of the first peak of the comb filter:
flanging_temp.m
taoVsw.m

Reference:
[1] flanging history and a simple flanging algorithm from Professor Julius Smith's
website
[2] Phase Shift and Time Delay from Universal Audio(c) website