Class Name

FFT

Description

This is a Fast Fourier Transform (FFT) analyzer. It calculates the normalized power spectrum of an audio stream the moment it is queried with the analyze() method.

Examples

  • import processing.sound.*;
    
    FFT fft;
    AudioIn in;
    int bands = 512;
    float[] spectrum = new float[bands];
    
    void setup() {
      size(512, 360);
      background(255);
        
      // Create an Input stream which is routed into the Amplitude analyzer
      fft = new FFT(this, bands);
      in = new AudioIn(this, 0);
      
      // start the Audio Input
      in.start();
      
      // patch the AudioIn
      fft.input(in);
    }      
    
    void draw() { 
      background(255);
      fft.analyze(spectrum);
    
      for(int i = 0; i < bands; i++){
      // The result of the FFT is normalized
      // draw the line for frequency band i scaling it up by 5 to get more amplitude.
      line( i, height, i, height - spectrum[i]*height*5 );
      } 
    }
    

Constructors

  • FFT(parent)
  • FFT(parent, bands)

Parameters

  • parenttypically use "this"
  • bandsnumber of frequency bands for the FFT as an integer (default 512). This parameter needs to be a power of 2 (e.g. 16, 32, 64, 128, ...).

Methods

  • analyze()Calculates the current frequency spectrum and returns it as an array with as many elements as frequency bands.
  • analyzeSample()Calculates the frequency spectrum of the given sample, returning an array of magnitudes.
  • input()Define the audio input for the analyzer.