agent85 ·
In 2006 Avery Lee coded a 'center cut' DSP for virtualdub that has become somewhat of a reference standard for vocal removers and isolators. It is more than a simple pan-center-cut and became popular as a DSP for Winamp. I'm sure there are even better variations now (some using Cepstrum Lifters), but I would like to implement Lee's 'center cut' in Synthmaker, as I need it to enhance other effects.
The idea as I understand it is to perform an FFT (he performs an FHT) and look for equivalent phase and amplitude signals between the left and right channels. Adding them together, or subtracting them out, depending on what you want to do--isolate or remove.
Below is his description of the algorithm.
QUOTE: Transform the left and right channels to frequency domain using the Fast Hartley Transform (FHT). I use a window size of 4096 and a raised cosine window.
For each frequency component, where L is the 2D vector from the left channel, and R is the 2D vector from the right channel: Compute C = L/|L| + R/|R|. Compute α such that (L-αC)∙(R-αC) = 0. Basically, scale C so that when it is subtracted from L and R, the two resultant vectors are perpendicular. Expanding the math gives the equation (C∙C)a2 - C∙(L+R)α + (L∙R) = 0, which can be solved for α by the quadratic formula. Compute C' = αC, L' = L-αC, and R' = R-αC. Transform L', R', and C' back to time domain. Overlap and add every quarter window (1024 samples). END QUOTE
His published blog on it is here (though I quoted the most relevant part above): http://www.virtualdub.org/blog/pivot/entry.php?id=102
The C++ code is on sourceforge, hence there are many VST's now providing this, or some variation of it. I have no need to make yet another 'center cut' VST, but I could use it in an intermediary way in other VST's I have and others that I plan to make.
I have not used Synthmaker's FFT component and am not sure how to use it to implement this formula.
Has anyone done something like this, or can point me in a direction to get started on it?
Thanks