<分区>
从存储在数组中的一系列 MIDI 音符(带有 MIDI 音符编号)中,是否存在一种算法来获取这些音符所暗示的最可能的调或音阶?
<分区>
从存储在数组中的一系列 MIDI 音符(带有 MIDI 音符编号)中,是否存在一种算法来获取这些音符所暗示的最可能的调或音阶?
最佳答案
如果您使用的是 Python,则可以使用 music21 工具包来执行此操作:
import music21
score = music21.converter.parse('filename.mid')
key = score.analyze('key')
print(key.tonic.name, key.mode)
如果您关心用于查找 key 的特定算法,您可以使用它们而不是通用的“ key ”:
key1 = score.analyze('Krumhansl')
key2 = score.analyze('AardenEssen')
等这些方法中的任何一种也适用于和弦。
(免责声明:music21 是我的项目,所以我当然有推广它的既得利益;但您可以查看 music21.analysis.discrete 模块,从中获取其他项目/语言的想法。如果您有MIDI 解析器,Krumhansl 算法不难实现)。
关于从音符中获取调和音阶的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734644/