2011-05-06 25 views
0

我有点卡在这里,因为我似乎无法找到一些算法来区分所产生的声音是和弦还是单个音符。我正在制作吉他乐器。如何区分单音和弦?

目前,我正在试验的是试图获得具有最高振幅的前5个频率,然后确定它们是否是基波谐波(振幅最高的谐波)。我正在研究单音包含比和弦更多谐波的理论,但我不确定是否属于这种情况。

我正在考虑的另一件事是试图添加各种谐波幅值以及比较包含'假定和弦'的音符与FFT结果。

你能帮我一下吗?这将非常感激。目前,我只是首先在大和小和弦上工作。

非常感谢!

+4

这很难,一般来说。并高度依赖于仪器。不要乐观。有相关的材料吨,见例如http://stackoverflow.com/questions/4337487/chord-detection-algorithms – leonbloy 2011-05-06 12:07:03

回答

4

和弦识别仍然是一个研究课题。一个好的解决方案可能需要一些相当复杂的AI模式匹配技术国际音乐信息检索协会似乎每年都会举办一次自动转录类型问题比赛。您可以查看会议和研究论文,了解已经尝试过的内容以及它的工作原理。

另请注意,基本音高不一定是具有最高FFT幅度结果的频率。用吉他,它通常不是。

+0

ISMIR(这个名字太长,人们不记得它) – Adam 2012-03-14 13:16:40

2

您需要根据听到的声音来思考它。寻找前5名的频率不会对你有任何好处。

您需要查找(最大频率幅度)/ srt(2)内的所有频率以确定信号的和弦/非和弦方面。