我意识到在这里有一个很少有问题的关于和弦检测算法;然而,大多数这些似乎更多地与将歌曲解释为群体和弦转录。我的问题应该是一个更简单的更简单,因为我只对录制一个吉他和弦录音然后分析它来返回所播放的和弦。而且,如果这被证明太困难,那么只能够判断特定的和弦是否正确地播放了特定的和弦,那么就会有些足够的足够才能正确地播放。用户展示了和弦以尝试播放,并在弹奏之后,应用程序将告诉他们是否播放了正确的和弦(内存游戏的某些东西)。我认为这第二个选项将更容易,因为应用程序已经知道了所期望的是什么。

我已经使用了FFT和谐波产品谱作为吉他调谐器作为相同应用的一部分,并且真的可以了解如何分析FFT输出的频谱以识别吉他和弦。我也对此事的任何其他建议开放,真的很欣赏我可以得到的任何帮助。

感谢

有帮助吗?

解决方案 2

对于任何人想知道如何做这种事情,调查谐波产品谱和音高级概况/色度矢量。这些的组合是关键。此外,使用搜索项“多F0估计”而不是“Chord检测”将保证更好的结果:)

其他提示

您可以尝试指纹最常见的和弦,然后在您的指纹集中寻找最接近的匹配标准化谱。例如将其视为频域中的模式匹配问题。

虽然回复太晚了,但我希望这将为您提供帮助..

如果您为电子或MIDI吉他或任何其他MIDI仪器编程,那么这些东西都有一个非常有效的Java包JFugue,例如检测和任何乐器等,并且在此中有很多功能包裹。 我建议你看看它 jfugue.org

我自己发现它很难识别使用FFT的整个和弦。但就我的实验而言,我能够使用FFT制作吉他和弦标识符作为获取单个声音数据频率的基本算法。FFT调谐器的问题是他们只检测声音的根本记录。虽然我的实验证明,您可以采取正在播放的琴弦的所有音符,并使用所识别的笔记来讲述和弦正在播放的内容。至于现在,我的研究仍然仅限于检测主要的吉他和弦和一些小和弦,如EM和AM进行进一步研究。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top