Minim core | ugens | analysis |
FourierTransform getBand | Description Returns the amplitude of the requested frequency band. Signature
    float getBand(int i)
Parameters i — int: the index of a frequency band Returns float: the amplitude of the requested frequency band Related FFT Example
    /**
      * This sketch demonstrates how to use an FFT to analyze
      * the audio being generated by an AudioPlayer.
      * <p>
      * FFT stands for Fast Fourier Transform, which is a
      * method of analyzing audio that allows you to visualize
      * the frequency content of a signal. You've seen
      * visualizations like this before in music players
      * and car stereos.
      * <p>
      * For more information about Minim and additional features,
      * visit http://code.compartmental.net/minim/
      */

    import ddf.minim.analysis.*;
    import ddf.minim.*;

    Minim       minim;
    AudioPlayer jingle;
    FFT         fft;

    void setup()
    {
      size(512, 200, P3D);

      minim = new Minim(this);

      // specify that we want the audio buffers of the AudioPlayer
      // to be 1024 samples long because our FFT needs to have
      // a power-of-two buffer size and this is a good size.
      jingle = minim.loadFile("jingle.mp3", 1024);

      // loop the file indefinitely
      jingle.loop();

      // create an FFT object that has a time-domain buffer
      // the same size as jingle's sample buffer
      // note that this needs to be a power of two
      // and that it means the size of the spectrum will be half as large.
      fft = new FFT( jingle.bufferSize(), jingle.sampleRate() );

    }

    void draw()
    {
      background(0);
      stroke(255);

      // perform a forward FFT on the samples in jingle's mix buffer,
      // which contains the mix of both the left and right channels of the file
      fft.forward( jingle.mix );

      for(int i = 0; i < fft.specSize(); i++)
      {
        // draw the line for frequency band i, scaling it up a bit so we can see it
        line( i, height, i, height - fft.getBand(i)*8 );
      }
    }
Usage Web & Application