使用music21显示Mid文件中的MIDI音高编号

2 投票
1 回答
1836 浏览
提问于 2025-04-17 23:40

我正在使用music21这个工具来提取一堆midi文件中的音高数字(按顺序)。

我已经看过文档,发现可以这样加载一个文件:

from music21 import *
sBach = corpus.parse('bach/bwv7.7')

现在我想知道怎么才能显示一系列的midi数字?我相信这是可能的,但我在文档里找不到相关的函数。

还有没有办法同时处理多个文件呢?

1 个回答

3
from music21 import *
sBach = corpus.parse('bach/bwv7.7')
for p in sBach.parts:
    print("Part: ", p.id)
    for n in p.flat.notes:
        print(n.pitch.midi)

注意,.notes 包含了 Chord 对象,而这些对象是没有 .pitch 属性的。所以在处理复杂的乐谱时,你可能需要把和弦和音符分开,或者遍历 p.pitches。我建议你在继续之前,先多看看 music21 的 用户指南

撰写回答