Artemis.Profiles.Layers.Types.Audio.AudioType.FftCalculated C# (CSharp) Method

FftCalculated() private method

private FftCalculated ( object sender, FftEventArgs e ) : void
sender object
e Artemis.Modules.Effects.AudioVisualizer.Utilities.FftEventArgs
return void
        private void FftCalculated(object sender, FftEventArgs e)
        {
            if (_lines == 0)
                return;

            lock (SpectrumData)
            {
                int x;
                var b0 = 0;

                SpectrumData.Clear();
                for (x = 0; x < _lines; x++)
                {
                    float peak = 0;
                    var b1 = (int) Math.Pow(2, x*10.0/(_lines - 1));
                    if (b1 > 2047)
                        b1 = 2047;
                    if (b1 <= b0)
                        b1 = b0 + 1;
                    for (; b0 < b1; b0++)
                        if (peak < e.Result[1 + b0].X)
                            peak = e.Result[1 + b0].X;
                    var y = (int) (Math.Sqrt(peak)*3*255 - 4);
                    if (y > 255)
                        y = 255;
                    if (y < 0)
                        y = 0;
                    SpectrumData.Add((byte) y);
                }
            }
        }