/// <summary> /// Split and convolve a single channel by ID. /// </summary> static void ProcessChannel(int channel) { // Select the retain range Crossover lowCrossover = spatialChannels[channel].Crossover; lowCrossover.Process(originalSplit[channel]); originalSplit[channel] = lowCrossover.LowOutput; // Select the impulse response frequency range if (rightSplit[channel].Length != blockSize) { rightSplit[channel] = new float[blockSize]; } leftSplit[channel] = lowCrossover.HighOutput; Array.Copy(leftSplit[channel], rightSplit[channel], blockSize); spatialChannels[channel].Filter.Process(leftSplit[channel], rightSplit[channel]); }