public void FftCalculatedFired(object s, FftEventArgs a) { try { Dispatcher.Invoke((Action) delegate() { spectrumAnalyser.Update(a.Result); }); } catch (Exception ex) { Debug.WriteLine("\n" + ex + "\n"); } }
//private readonly int channels; public SampleAggregator(ISampleProvider source, EqualizerBand[] bands) : base(source, bands) { int fftLength = 1024; //channels = source.WaveFormat.Channels; if (!IsPowerOfTwo(fftLength)) { throw new ArgumentException("FFT Length must be a power of two"); } this.m = (int)Math.Log(fftLength, 2.0); this.fftLength = fftLength; this.fftBuffer = new Complex[fftLength]; this.fftArgs = new FftEventArgs(fftBuffer); this.source = source; }