使用 music21 显示 Mid 文件中的 midi 音高数字

Posted

技术标签:

【中文标题】使用 music21 显示 Mid 文件中的 midi 音高数字【英文标题】:Showing midi pitch numbers from Mid file with music21 【发布时间】:2014-03-24 14:22:53 【问题描述】:

我正在使用music21 为一堆midi 文件提取midi 音高数字(按顺序)。

我一直在阅读文档,我可以像这样加载一个文件:

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

现在如何显示一系列 midi 数字?我确信这是可能的,但我在文档中找不到该功能。

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

【问题讨论】:

web.mit.edu/music21 的“在 music21 中连续绘制音高和持续时间”示例展示了如何读取音符编号。另见web.mit.edu/music21/doc/moduleReference/… 【参考方案1】:
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 User's Guide。

【讨论】:

以上是关于使用 music21 显示 Mid 文件中的 midi 音高数字的主要内容,如果未能解决你的问题,请参考以下文章

Music21:获取音符的曲目索引

使用 Music21(或替代方法)从 MIDI 中提取休止符并写入单独的 MIDI 轨道

如何使用 Python 中的长笛乐器从音符制作 MIDI 文件(music21 库)

使用带有 partitionByInstrument() 的 music21 读取 MIDI 文件以获取返回空列表的音符和和弦

music21:从平面乐谱中获取 midi 声音的声音/程序/乐器?

Music21 Python 库将只输出钢琴声音