我正试图从我的麦克风中获得音量水平来调整盒子的大小(更响=更大)。但我有以下问题:a) getGain似乎总是给我-64b) getVolume似乎不可用
我编辑了一个处理示例来响应麦克风而不是提供的音频文件,但不知道如何获得音量
这是我的
import ddf.minim.analysis.*;
import ddf.minim.*;
Minim minim;
AudioInput accessMic;
FFT fft;
float boxSize;
void setup () {
size(512, 200, P3D);
minim = new Minim(this);
accessMic = minim.getLineIn();
rectMode(CENTER);
}
void draw() {
background(255);
boxSize = accessMic.getGain();
stroke(255);
println(boxSize);
fill(0);
rect(width/2,height/2,boxSize,boxSize);
}
如果你能给我任何帮助,我将非常感激由于 我在最小的.getGain();
中有类似的问题
我通过使用left.level();
得到了类似的东西,它在0
和1
之间返回浮动。显然,这只考虑了一个立体声输入,你完全可以对来自另一个通道的结果执行.right.level();
。
boxSize = accessMic.left.level() * 100;
你会得到一个大小在0到100之间跳动的盒子!
希望有帮助!
您考虑过在Processing中使用声音库吗?
下面是一个例子。
至少,您必须使用AudioBuffer
,这正是in.left()
和in.right()
的含义。这应该与Amplitude()
函数的结果相同。