Example #1
0
        /// <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]);
        }