精神と時の部屋

金令木が 一日一回程度 頑張るところ

Processing#9

「sound」

 

音に反応する作品

open processing で描画されなかったのでコードだけ載せます

気になった人は各自でみてください

 

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

import ddf.minim.*;
Minim minim;

AudioInput in;
float volumeIn;
float d = 0;
float sa;
float easing = 0.1;
float center_x = 0;
float center_y = 0;

float color_r = 50;
float color_g = random(255);
float color_b = 255;

void setup() {
size(500, 500);
minim = new Minim(this);
in = minim.getLineIn(Minim.MONO, 512);
colorMode(HSB,360,100,100);
}

float ds = new float[1024];
float
cxs = new float[1024];
float cys = new float[1024];
float
rs = new float[1024];
float gs = new float[1024];
float
bs = new float[1024];
int ds_length = 0;

float dd = 0;
float pre_d = 0;
float pre_dd = 0;

boolean isChangable = false;
int defaultLeapCount = 50;
int leapCount = defaultLeapCount;

void draw(){
background(360);
volumeIn = map(in.left.level(), 0, 0.05, 0, width);
sa = volumeIn - d;
if(abs(sa) > 0.5){
d = d + sa * easing;
}

dd = d - pre_d;

if(dd*pre_dd<0){
ds[ds_length] = d;
cxs[ds_length] = center_x;
cys[ds_length] = center_y;
rs[ds_length] = color_r;
gs[ds_length] = color_g;
bs[ds_length] = color_b;
ds_length += 1;
}

pre_d = d;
pre_dd = dd;


noStroke();
fill(55,99,99);
ellipse(250, 250, d, d);

fill(360);
textSize(50);
text("That's fun?",width/8,height*0.2);
}

 

ほぼほぼ写経

個人的には面白いものができたと思う

 

 

参考サイト

qiita.com