好的,这是一些数学和DSP问题。使用不同的值增加音频音高
让我们说我有20,000个样本,我想以不同的音高重新采样。例如,正常速率是正常速率的两倍。使用Interpolate cubic method found here我会通过迭代中的i变量乘以新音高来设置我的新数组索引值(在本例中为2.0)。这也会使我的新样本数量达到10,000。由于插值速度加倍,所以只需要一半的时间来完成。
但是如果我想让我的音高在整个录音过程中发生变化呢?基本上我希望它从正常速度慢慢地增加到8倍(10,000个样本标记),然后回到1.0。这将是一个弧。我的问题是这样的:
如何计算最终音轨有多少个采样?
如何创建间距值,将代表这增加,从1.0到8.0回到1.0
你要知道这是不是实况音频输出数组,但转化录制的声音。我主要在C工作,但我不知道这是否相关。
我知道这可能是复杂的,所以请随时要求澄清。
不管你选择什么功能,我认为尼古拉斯是正确的计算新的长度。取从0到原始样本数的音高积分,然后除以样本数。 – AShelly 2011-04-20 20:08:13
这个解决方案的问题在于,当你遍历数组(乘以音高)时,你会超过原始音频缓冲区中的样本总数。我确信基于这个想法可以找出一些东西,但是我不明白。 – 2011-04-21 10:03:08
@Eric - 你说得对,我编辑过。 – NicolasP 2011-04-21 19:47:40