如何以编程方式检测音符和和弦(在 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 文件以获取返回空列表的音符和和弦

使用 NAudio 演奏和弦的最佳方式

如何在 python 中生成音符或和弦?

如何以编程方式检测 iPhone 6 和 6 Plus 视图模式 [重复]

music21:写入midi文件后和弦转音符?

如何使用 guitar pro 制作扫弦的吉他谱