public PowerSpectrumGenerator(int fftSize) { //Configure this.fftSize = fftSize; bufferSize = fftSize * 4; //Create buffers loopBuffer = UnsafeBuffer.Create(bufferSize, out loopBufferPtr); workingBuffer = UnsafeBuffer.Create(fftSize, out workingBufferPtr); powerBuffer = UnsafeBuffer.Create(fftSize, out powerBufferPtr); powerPersistBuffer = UnsafeBuffer.Create(fftSize, out powerPersistBufferPtr); //Create window and FFT window = new FFTWindow(fftSize, Filters.WindowType.BlackmanHarris7); fft = new KissFFTComplex(fftSize, false); }
public PowerPreview(int fftBins, int sampleRate, int frameWidth, int targetFrameRate, bool isHalf = false) { //Apply this.fftBins = fftBins; this.isHalf = isHalf; TargetFrameRate = targetFrameRate; SampleRate = sampleRate; FrameWidth = frameWidth; //Set defaults Attack = 0.4f; Decay = 0.3f; //Get FFT window and an FFT window = new FFTWindow(fftBins, WindowType.Youssef); fft = new KissFFTComplex(fftBins, false); //Open constant buffers fftCirularBuffer = UnsafeBuffer.Create(fftBins, out fftCirularPtr); fftIncomingBuffer = UnsafeBuffer.Create(fftBins, out fftIncomingPtr); fftProcessingBuffer = UnsafeBuffer.Create(fftBins, out fftProcessingPtr); powerProcessingBuffer = UnsafeBuffer.Create(fftBins, out powerProcessingPtr); }