Keyi s that simply doing the fft for cross synth first and forget all the numbers, and then the same thread does the fft for phase shifting.
something like that. Say you have a function doCrossSynth() and one doPitchShift(). If in the same thread, they'll be:
void myOneThreadFunction()
{
doCrossSynth();
doPitchShift();
}
if you have two threads, it would be:
void firstThreadFunction(void*)
{
doCrossSynth();
}
void secondThreadFunction(void*)
{
doPitchShift();
}
Point is there is only one core, so there is no additional parallelism advantage from using two separate threads unless you have to (because of the different step size).