public SampleAggregator(ISampleProvider source, 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;
 }
 protected virtual void OnFftCalculated(FftEventArgs e)
 {
     EventHandler<FftEventArgs> handler = FftCalculated;
     if (handler != null) handler(this, e);
 }