那么标题会提出问题。如何确定通过iPhone上的麦克风听到的当前音乐音符?例如调音吉他或其他乐器。iOS仪器调谐器
我环顾四周,在互联网上,但我坚持,还有图书馆,可以在这方面帮助吗?也许值得注意的是我只针对iOS 7以上。我似乎无法找到任何开源项目参考如何去做这个,所以任何例子都表示赞赏。
那么标题会提出问题。如何确定通过iPhone上的麦克风听到的当前音乐音符?例如调音吉他或其他乐器。iOS仪器调谐器
我环顾四周,在互联网上,但我坚持,还有图书馆,可以在这方面帮助吗?也许值得注意的是我只针对iOS 7以上。我似乎无法找到任何开源项目参考如何去做这个,所以任何例子都表示赞赏。
有许多方法可以检测信号的音高,但是围绕它的机制将包含某些基本元素。你需要:
1)启动音频流从它的来源是设备的麦克风。 AudioUnits是一个不错的选择,但是我认为AudioQueueServices是一个较小的陡峭的学习曲线更容易的选择。
2)截取并且读取来自流音频字节。这通常是通过使用某种呈现回调函数来完成的,该回调函数将处理特定的缓冲区大小。
3)在呈现回调执行您的基音检测算法。 加速框架有很好的dsp功能选择,这将有助于完成工作。
4)手柄的结果相应地作为更新UI等这样..从2
5)重复)在时域中
普通技术检测,过零,使用自相关或最大似然。在频域
常用的技术包括离散傅立叶变换(DFT)和谐波的产品系列(HPS)
这确实是一个很大的话题,并有大量的信息在那里就可以了。 (包括开源,博客,西元,TUTS)
可能有其他的方式去了解这一点,但确定频率的一种方法是使用傅立叶变换。应该有开源的库来实现它 - 事实上,你可能会找到一些完整的开源调试器程序来学习。你需要做一些研究,弄清楚你需要什么味道。不幸的是,这个问题可能过于宽泛和偏离本网站。 – iamnotmaynard
对于有类似问题的其他人,我已经开源了我的FFT吉他调谐器ios应用程序。在https://github.com/catch-twenty-two/iOS-Guitar-Tuner –