在CoreAudio AudioUnits中移动Octave(以及更多)

时间:2012-06-21 19:13:46

标签: ios macos core-audio audiounit

如何在音频缓冲水平上向上或向下移动Octave?或者是否有图书馆功能?是否有库或可能允许的(iOS)第三方库来确定音频文件的某些属性?比如BPM,Key等。或者如何判断这些东西?如何在音频缓冲区中区分节拍?如何从音频数据中提取音频的密钥?

1 个答案:

答案 0 :(得分:3)

为了在iOS设备上以八度音程移动音高,目前没有内置音频单元功能。但似乎有一些可用的商业时间间距修改库,例如Dirac的库。

似乎有一些名为音调探测器的开源iOS DSP代码;但是,要注意,因为有些代码似乎只擅长FFT频率估计,这在很多情况下音乐音调和密钥估计都很差。寻找使用自相关,倒谱分析或其他更先进方法的音高检测/估算代码。

对于BPM估算,请参阅这些问题的答案:How to detect the BPM of a song in phpBeats per minute from real-time audio input

以上都不是微不足道的,做得好可能仍然被认为是DSP和音乐信号处理的研究生水平研究课题。

更新:iOS 6包含AUNewTimePitch音频单元,可以进行非高质量的时间间距修改,将音高调整2倍。