読者です 読者をやめる 読者になる 読者になる

Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

スペクトログラム

サウンド
f:id:aa_debdeb:20151111114004j:plain
/**
* Spectrogram
*
* @author aa_debdeb
* @date 2015/11/16
*/

import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;

Minim minim;
AudioInput in;
FFT fft;

void setup(){
  size(513, 513);
  minim = new Minim(this);
  in = minim.getLineIn(Minim.STEREO, 1024);  
  fft = new FFT(in.bufferSize(), in.sampleRate());
  background(0);
}

void draw(){
  fft.forward(in.mix);
  
  loadPixels();
  for(int x = 0; x < width; x++){
    for(int y = 0; y < height; y++){
      if(x < width - 1){
        pixels[y * width + x] = pixels[y * width + x + 1];
      } else {
        pixels[y * width + x] = color(fft.getBand(height  - 1 - y) * 30);
      }
    }
  }
  updatePixels();
}

void stop(){
  in.close();
  minim.stop();
  super.stop();
}