コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }