在music21 中,我怎样才能不忽略速度标记?

问题描述

我在 music21 中生成乐谱,并通过显示乐谱和使用 stream.show('midi') 收听乐谱来检查它们。但我发现流中的 music21.tempo.metronomeMark 对象被简单地忽略了。无论速度对象具有什么值,它都会以大约 120 bpm 的速度播放。

这是重现问题的简短示例:

import music21

tempo_test = music21.stream.Stream()
tempo_test.append(music21.tempo.metronomeMark(number=20))
tempo_test.append(note.Note('C4',type='quarter'))
tempo_test.append(note.Note('F4',type='quarter'))
tempo_test.append(note.Note('B4',type='quarter'))
tempo_test.show('midi')

它以大约 120 bpm 的速度播放。 (它也不会播放第一个音符,这是一个不同的问题。)

如果我用不同的节奏再做一次:

tempo_test = music21.stream.Stream()
tempo_test.append(music21.tempo.metronomeMark(number=200))
tempo_test.append(note.Note('C4',type='quarter'))
tempo_test.show('midi')

节奏完全一样,大概是120。

我在 jupyter notebook 中工作,运行 python 3.6.13 和 music21 5.5.0

解决方法

这在以后的版本中得到了修复。最新版本是6.7.1。