Example #1
0
        /// <summary>
        /// Process mono dsp chain.
        /// </summary>
        /// <param name="samples">Array of 8bit samples.</param>
        private void _ProcessDSPMono(ref byte[] buffer)
        {
            int len = buffer.Length;
            int i   = 0;

            unsafe
            {
                do
                {
                    Bands.BiQuad(ref buffer[i], Biquad100Left);
                    Bands.BiQuad(ref buffer[i], Biquad200Left);
                    Bands.BiQuad(ref buffer[i], Biquad400Left);
                    Bands.BiQuad(ref buffer[i], Biquad800Left);
                    Bands.BiQuad(ref buffer[i], Biquad1600Left);
                    Bands.BiQuad(ref buffer[i], Biquad3200Left);
                    Bands.BiQuad(ref buffer[i], Biquad6400Left);

                    Bands.BiQuad(ref buffer[i], BiquadHPF);

                    Bands.BiQuad(ref buffer[i], BiquadLPF);

                    i++;
                } while (i < len);
            }
        }
        /// <summary>
        /// Process mono dsp chain.
        /// </summary>
        /// <param name="samples">Array of 16bit samples.</param>
        private void _ProcessDSPMono(ref Int16[] samples)
        {
            int len = samples.Length;
            int i   = 0;

            unsafe
            {
                do
                {
                    Bands.BiQuad(ref samples[i], Biquad100Left);
                    Bands.BiQuad(ref samples[i], Biquad200Left);
                    Bands.BiQuad(ref samples[i], Biquad400Left);
                    Bands.BiQuad(ref samples[i], Biquad800Left);
                    Bands.BiQuad(ref samples[i], Biquad1600Left);
                    Bands.BiQuad(ref samples[i], Biquad3200Left);
                    Bands.BiQuad(ref samples[i], Biquad6400Left);

                    Bands.BiQuad(ref samples[i], BiquadHPF);

                    Bands.BiQuad(ref samples[i], BiquadLPF);

                    i++;
                } while (i < len);
            }
        }
Example #3
0
        /// <summary>
        /// Process mono dsp chain.
        /// </summary>
        /// <param name="samples">Array of 8bit samples.</param>
        private void _ProcessDSPStereo(ref byte[] buffer)
        {
            int len = buffer.Length;
            int i   = 0;

            unsafe
            {
                len -= 1;
                do
                {
                    // left channel
                    Bands.BiQuad(ref buffer[i], Biquad100Left);
                    Bands.BiQuad(ref buffer[i], Biquad200Left);
                    Bands.BiQuad(ref buffer[i], Biquad400Left);
                    Bands.BiQuad(ref buffer[i], Biquad800Left);
                    Bands.BiQuad(ref buffer[i], Biquad1600Left);
                    Bands.BiQuad(ref buffer[i], Biquad3200Left);
                    Bands.BiQuad(ref buffer[i], Biquad6400Left);
                    // right channel
                    Bands.BiQuad(ref buffer[i + 1], Biquad100Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad200Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad400Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad800Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad1600Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad3200Right);
                    Bands.BiQuad(ref buffer[i + 1], Biquad6400Right);

                    Bands.BiQuad(ref buffer[i], BiquadHPF);
                    Bands.BiQuad(ref buffer[i + 1], BiquadHPF);

                    Bands.BiQuad(ref buffer[i], BiquadLPF);
                    Bands.BiQuad(ref buffer[i + 1], BiquadLPF);

                    i += 2;
                } while (i < len);
            }
        }
        /// <summary>
        /// Process stereo dsp chain.
        /// </summary>
        /// <param name="samples">Array of 16bit samples.</param>
        private void _ProcessDSPStereo(ref Int16[] samples)
        {
            int len = samples.Length;
            int i   = 0;

            unsafe
            {
                len -= 1;
                do
                {
                    // left channel
                    Bands.BiQuad(ref samples[i], Biquad100Left);
                    Bands.BiQuad(ref samples[i], Biquad200Left);
                    Bands.BiQuad(ref samples[i], Biquad400Left);
                    Bands.BiQuad(ref samples[i], Biquad800Left);
                    Bands.BiQuad(ref samples[i], Biquad1600Left);
                    Bands.BiQuad(ref samples[i], Biquad3200Left);
                    Bands.BiQuad(ref samples[i], Biquad6400Left);
                    // right channel
                    Bands.BiQuad(ref samples[i + 1], Biquad100Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad200Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad400Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad800Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad1600Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad3200Right);
                    Bands.BiQuad(ref samples[i + 1], Biquad6400Right);

                    Bands.BiQuad(ref samples[i], BiquadHPF);
                    Bands.BiQuad(ref samples[i + 1], BiquadHPF);

                    Bands.BiQuad(ref samples[i], BiquadLPF);
                    Bands.BiQuad(ref samples[i + 1], BiquadLPF);

                    i += 2;
                } while (i < len);
            }
        }