3

我正在尝试从我的麦克风中获取音量以调整盒子的大小(更大=更大)。但我有以下问题:a)getGain 似乎不断给我-64 b)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);
}

您能给我的任何帮助将不胜感激谢谢

4

2 回答 2

1

我有类似的问题, 我通过使用 which return float between and 来解决.getGain();类似的问题。显然,仅考虑其中一个立体声输入,您也完全可以从那里的另一个通道获得结果。
left.level();01.right.level();

所以你的代码看起来有点像
boxSize = accessMic.left.level() * 100;
,你会得到一个大小在 0 到 100 之间弹跳的盒子!

希望有帮助!

于 2014-09-04T05:33:47.730 回答
0

您是否考虑过在 Processing 中使用声音库

这是一个例子

至少,您必须使用AudioBufferwhich is what in.left()and in.right()are。这应该给你与函数相同的结果Amplitude()

于 2017-05-18T03:46:07.727 回答