从音频中获取对数字节频率数据
本文介绍了从音频中获取对数字节频率数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我之前问了一个类似的问题,但它没有解决我的问题,而且解释得很糟糕。 这一次,我制作了插图,希望能更好地解释。
我的音频播放器有一个简单的频谱分析仪。频率存储在一个数组中,该数组在每隔requestAnimationFrame
进行更新,该数组如下所示:
Read more about getByteFrequencyData here.
所以这很好用,但是我希望频率在整个频谱中均匀分布。目前它显示的是线性频率:如您所见,这里的主要频率范围是高音(高端),而最主要的频率范围是低音范围(低端)。我希望我的分析器具有如下均匀分布的频率范围:
在这里,您可以看到频率在分析仪上均匀分布。这可能吗?
我用来生成分析器的代码如下所示:
请注意,我在for循环中跳过了8个栏(请参见顶部的canmultiplier
)(如果我不这样做,分析器的另一半将呈现在画布之外,因为它太大了。)我不知道这是否也是导致频率范围不一致的原因。
推荐答案
如果我理解正确的话,我认为这对您是有效的,尽管还远远不够完美。
您在for循环中所做的是每8个元素对数组进行一次采样。我会做的是以对数的方式进行采样。
示例:
我希望我已经解释清楚了。这里有一个working demo,它有一些边界错误,但它的工作方式与我认为您需要的一样。
这篇关于从音频中获取对数字节频率数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!