问题描述
我在 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。