如何以编程方式检测音符和和弦(在 iPhone SDK 中)?
Posted
技术标签:
【中文标题】如何以编程方式检测音符和和弦(在 iPhone SDK 中)?【英文标题】:How to detect music note and chords programmatically (in iPhone SDK)? 【发布时间】:2011-03-21 07:21:13 【问题描述】:?
【问题讨论】:
【参考方案1】:您需要对传入的声波进行傅里叶变换(通常是 FFT)并找到主频率,然后在音符表中查找该频率及其对应的频率。
FFT 自 ios4 起成为 iOS 的一部分,位于 Accelerate 框架中。
查看other SO thread 了解更多信息和示例代码。
检测和弦的原理相同,但要复杂得多,因为您需要找到构成和弦的所有音符。
【讨论】:
我明白了,好像检测到单个音符,我们可以通过频率得到它。值,但如何检测和弦(由多个音符组成)。 好吧,你只需要按频率挑选更多的音符。价值观。如果您对和弦进行傅立叶变换,您将看到所有主要频率。这些可能是你想要的笔记。 (但是将它们与泛音区分开来会很棘手,尤其是如果您不知道和弦中的音符数量。绝对可行,但并不容易。)以上是关于如何以编程方式检测音符和和弦(在 iPhone SDK 中)?的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 partitionByInstrument() 的 music21 读取 MIDI 文件以获取返回空列表的音符和和弦