python - MIDI 文件中的 "duration"和 "offset"有什么区别?

标签 python midi music21

我正在使用“music21”库来处理 MIDI 文件。不幸的是,对于那些不太了解音乐是如何创作的人来说,提供的文档并不是那么清晰。 “持续时间”和“偏移量”有什么区别?据我了解,第一个音符/和弦的偏移量为 0.0,我们假设它的持续时间为 1.0。然后,接下来的音符/和弦的偏移量为 1.0,持续时间为 0.5。然后,偏移量 1.5 和持续时间 2 等等。但有时它具有相同的值。我很困惑。代码:

s2 = instrument.partitionByInstrument(midi)
duration = s2._elemets[0]._elements[9].duration
"<music21.duration.Duration 12.0>"
offset = s2._elemets[0]._elements[9].offset
"12.0"

最佳答案

偏移量(大致)是从片段开始的时间长度。持续时间是音符保持的时间。如果乐曲中没有休止符(静音)并且不存在两个音符一起发声的情况,则音符的偏移量将仅是先前持续时间的总和。

关于python - MIDI 文件中的 "duration"和 "offset"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55415897/

相关文章:

Python:为什么 Xpath 似乎只处理这棵树中的第一个元素?

python - 使用 CountVectorizer 在 python 中 todense 时出现内存错误

java - 将带小数的毫秒转换为毫秒

header block 中的 MIDI 划分

python - music21:按音符位置将音符写入 MIDI 文件

python - 如何使用 music21 显示空的五线谱?

python - 如何使用 QAbstractTableModel 模型控制其他小部件?

python - 在 jupyter 笔记本上使用 matplotlib 的动画分辨率?

python - 是否可以在 portmidi/pyportmidi 中找出 MIDI 设备连接到哪个 USB 端口

python - music21:如何同时将和弦附加到流中?