【Processing】mimimを使ってみる

 

サウンド用のライブラリ、minimを使った。

soundライブラリはモノラルしか使えないので。

 

下記のブログを参考にした。

Processingで音楽に連動する動画が簡単につくれた話

 

サンプルコード見てたらminimの方が便利そうだね。

知ってたけどめんどくさくて手を出さなかったが、ちょくちょくやるか。

 

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

Minim minim;
AudioPlayer player;
PImage img;
FFT fft;
int specSize;
float volume;

void setup(){
  size(510, 1000);

  background(2);
  minim = new Minim(this);
  player = minim.loadFile("music.mp3",512);
  // フーリエ変換のインスタンスを生成
  fft = new FFT(player.bufferSize(), player.sampleRate());
  player.play();
}

void draw(){
  noStroke();
  img = loadImage("orion.jpg");

  // FFTで波形から周波数のスペクトルに変換
  fft.forward(player.mix);
  specSize =  fft.specSize();

  for(int i = 0; i < specSize; i+=(int)random(10)){
    int h = (int)map(i, 0, specSize, 0, height);
    volume = fft.getBand(i);
    if(volume < 3){ volume = 0; }
    int ellipse_width = (int)((int)volume * (h/10));
    if(h >= 0 && h <= height && ellipse_width >=10){
      int x = (int)random(0,800);
      for(int w = ellipse_width; w > 0; w -= w*w){
        fill(img.get(x,h),50);
        ellipse(x, h, w,w);
      }  
    }     
  }
}


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