我正在寻找将以字符串表示的音符作为输入并产生和弦名称作为输出的算法。
例如:
chordName("C", "E", "G")
>>> "C major"
chordName("C", "E", "G", "B")
>>> "C major 7"
chordName("A", "C", "E")
>>> "A minor"
最佳答案
吹牛角(即我是该库的首席开发人员,当然有偏见),但是通过music21(http://web.mit.edu/music21/),您可以执行以下操作:
>>> from music21 import chord
>>> chord.Chord(['C','E','G']).pitchedCommonName
'C-major triad'
>>> chord.Chord(['C','E','G','B']).pitchedCommonName
'C-major seventh chord'
或更晦涩的事物...
>>> chord.Chord(['C','C#','D','E','F#']).pitchedCommonName
'D-tritone-expanding pentachord'
Chord的完整文档(http://web.mit.edu/music21/doc/moduleReference/moduleChord.html)将帮助您弄清楚如何以所需的格式获取文本输出。
关于algorithm - 基于文本,基于字符串的和弦识别算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17955486/