如何从处理器接收来自计算机音频的输入?

时间:2015-08-18 19:40:36

标签: java audio processing analysis visualizer

我很难在网上找到解决方案。基本上我正在尝试为我在计算机上播放的音乐创建自己的音频可视化器,并希望Processing能够分析来自iTunes的音频(或来自我的电脑的音频输出),这样我就可以在编码时卡住。

我查看了处理提供的Sound Library,这是一种将声音文件加载到草图中并播放回来的简单方法,以及从计算机上的麦克风接收输入,但是我认为这个图书馆无法接收来自iTunes(或任何其他媒体播放器)的输入。文档并没有多大帮助。如果我可以截取计算机的音频输出,将歌曲加载到我的草图中并且不得不一遍又一遍地分析同一首歌,那么构建我的可视化器要容易得多......

有什么建议吗?

是的我知道iTunes有一个内置的可视化工具。我想自己制作。

1 个答案:

答案 0 :(得分:1)

如果您使用的是较新版本的处理,请查看FFT example

import processing.sound.*;
FFT fft;
AudioIn in;
int bands = 512;
float[] spectrum = new float[bands];

void setup() {
  size(512, 360);
  background(255);

  // Create an Input stream which is routed into the Amplitude analyzer
  fft = new FFT(this);
  in = new AudioIn(this, 0);

  // start the Audio Input
  in.start();

  // patch the AudioIn
  fft.input(in, bands);
}      

void draw() { 
  background(255);
  fft.analyze(spectrum);

  for(int i = 0; i < bands; i++){
  // The result of the FFT is normalized
  // draw the line for frequency band i scaling it up by 5 to get more amplitude.
  line( i, height, i, height - spectrum[i]*height*5 );
  } 
}

使用Minim library处理2及更早版本。 请查看绘制频谱部分。 此外,为了进一步处理,您可能需要查看this post

在将音频播放作为输入路由时,您可以查看SoundFlowerJACK。要么允许您将系统音频作为输入路由。

另外,既然你已经提到了iTunes,那么{H}是Audio-driven landscape的创建者,iTunes Visualiser(以及许多其他很棒的东西)。

iTunes vis1

iTunes vis2

iTunes vis3