processing.js和min.js中的最佳/ Hz检测不起作用

时间:2014-05-20 04:20:27

标签: javascript processing fft processing.js minim

我刚刚编写了第二个Processing脚本,我试图在HTML5页面中获取它。我的脚本从输入歌曲(mp3)中检测频率的强度,并将每个频率分配给图像的色调范围以使图像动画化。我已经包含了processing.js和Pomax的minim.js。我收到以下错误:

Uncaught ReferenceError: FFT is not defined 

当它遇到行

时会发生这种情况
FFT fft; 

在我的处理草图中。我看了一下minim.js,它看起来像是一个小型库的一小部分。页面正在绘制框,所以我认为它只是缺少分析音频的FFT函数。然而,我更倾向于所有这一切的视觉艺术方面,所以可能是minim.js比我想象的要少得多。

有谁知道如何在minim.js中实现FFT?在HTML5环境中,它可能非常强大。我不确定我会做什么,但我想我可以找到另一个音频分析库。

我对这个世界还很陌生,所以如果您有任何疑问或需要代码请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

这实际上是使用Audio API而没有任何库的javascript中的6行代码,那么为什么你需要exta库的开销来实现6行代码无法实现的东西?

var sfx = new AudioContext();
var mediaSourceNode = sfx.createMediaElementSource(document.getElementById("yourAudio"));
var analyser = sfx.createAnalyser();
var timeDomainData = new Uint8Array(analyser.frequencyBinCount);
mediaSourceNode.connect(analyser);
analyser.connect(sfx.destination);

您将要播放的音频放在html5 <audio>元素中,并获得音频播放的基本用户界面。

为了从分析仪调用获取数据

analyser.getByteTimeDomainData(timeDomainData);

从你的画画循环中。您的数据将位于var timeDomainData

有关将javascript与processing.js结合使用的信息,请参阅http://processingjs.org/articles/PomaxGuide.html