简体   繁体   English

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

[英]Shifting Octave In CoreAudio AudioUnits (and more)

How would one shift Octave up or down on the audio buffer level? 如何在音频缓冲水平上向上或向下移动Octave? Or is there a library function for this? 或者是否有图书馆功能? Is there a library or possibly an allowed (iOS) 3rd party library for determining some attributes of an audio file? 是否有库或可能允许的(iOS)第三方库来确定音频文件的某些属性? Such as BPM, Key etc. Or how would one determine these things? 比如BPM,Key等。或者如何判断这些东西? How is a beat distinguished in an audio buffer? 如何在音频缓冲区中区分节拍? How would the key of the audio be extracted from the audio data? 如何从音频数据中提取音频的关键字?

For shifting pitch by an octave on an iOS device, there is currently no built-in audio unit function for this. 对于在iOS设备上以八度音调移动音高,目前没有内置音频单元功能。 But there appears to be some available commercial time-pitch modification libraries, such as one from Dirac. 但似乎有一些可用的商业时间间距修改库,例如Dirac的库。

There appears to be some open source iOS DSP code titled as pitch detectors; 似乎有一些名为音调探测器的开源iOS DSP代码; but, beware, as some of that code appears to be only good at FFT frequency estimation, which is poor at music pitch and key estimation in many cases. 但是,要注意,因为有些代码似乎只擅长FFT频率估计,这在很多情况下音乐音调和密钥估计都很差。 Look for pitch detection/estimation code that uses autocorrelation, cepstrum analysis, or other more advanced methods. 寻找使用自相关,倒谱分析或其他更高级方法的音调检测/估计代码。

For BPM estimation, see the answers to these questions: How to detect the BPM of a song in php and Beats per minute from real-time audio input . 对于BPM估计,请参阅这些问题的答案: 如何 从实时音频输入中 检测php中的歌曲每分钟节拍 的BPM

None of the above is trivial, and to do it well may still be considered a graduate level research topic in DSP and music signal processing. 以上都不是微不足道的,并且做得好可能仍然被认为是DSP和音乐信号处理的研究生水平研究课题。

UPDATE: iOS 6 includes the AUNewTimePitch Audio Unit, which can do a non-high-quality time-pitch modification to shift pitch by 2X. 更新:iOS 6包括AUNewTimePitch音频单元,可以进行非高质量的时间间距修改,将音高调整2倍。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM