2022-04-17
1.这个例子接收声音输入,然后可视化之。
2.用到极坐标,不断转动画圆。
如果不喊叫的话,外界没有影响。基本是圆形。
3,这里用了音量。后续练习一下频率分析。
image.png
但喊叫的话,影响就大起来了。
image.png
3.这个要用到声音处理的函数库。所以需要在最前边导入函数库。具体用法应该查阅函数库的方法说明。
import ddf.minim.*;
Minim minim;
AudioInput in;
void setup() {
size(800, 600, P2D);
background(0);
stroke(255);
minim = new Minim(this);
in = minim.getLineIn();
}
void draw() {
float a = 0;
float angle = (2*PI) /100;
int step = in.bufferSize() / 100;
for (int i=0; i < in.bufferSize()-step; i+=step) {
float x1 = width/2 + cos(a) * (1000 * in.mix.get(i) + 100);
float y1 = height/2 + sin(a) * (1000 * in.mix.get(i) + 100);
float x2 = width/2 + cos(a + angle) * (1000 * in.mix.get(i+step) + 100);
float y2 = height/2 + sin(a + angle) * (1000 * in.mix.get(i+step) + 100);
stroke(random(255), 100,100);
line(x1, y1, x2, y2);
a += angle;
}
}
如果加上渐变的效果,应该更好看。
- 3.体验回声效果。当你喊叫时,计算机会有你的回声,仿佛到了山里或某个空阔的空间的感觉。试试吧!
import processing.sound.*;
AudioIn in;
Reverb reverb;
void setup() {
size(640,360);
background(255);
// create the input stream
in = new AudioIn(this, 0);
// create a reverb effect
reverb = new Reverb(this);
// start the input stream
in.play();
// Patch the reverb
reverb.process(in);
reverb.room(0.5);
}
void draw() {
}
网友评论