3

我编写了一个 python 脚本来从一个 midi 文件中提取所有的音符、它们的偏移量和持续时间。我已经做到了这一点,但是我对四分音符(四分音符的持续时间)有疑问。我得到许多持续时间为 1/3 或其他一些三分之一的音符。然而,据我所知,没有一个音符有任何 1/3 的持续时间,因为它们都是四分音符、二分音符或十六分音符。这些持续时间来自哪里?

我尝试过使用具有不同时间签名的乐曲,但 4/4 乐曲、3/4 乐曲和 3/2 乐曲都为某些音符提供了 1/3 的四分之一长度。这是我的参考代码:

lis = []
s = converter.parse("music2/" + "bwv525-1.mid")
a = s.flat
for item in a.notes:
    print(item.duration.type, item.duration.dots, item.quarterLength)

其中 bwv525-1.mid 是我正在阅读的文件

4

1 回答 1

3

我很了解这首曲子和这种编码:它的大部分音符都被编码为 1/3 长度的八分音符和 1/6 长度的十六分之休止符,以便将它们分开。

MIDI 文件通常编码演奏而不是乐谱。

于 2019-01-13T01:37:53.983 回答