我正在music21中生成分数,并通过显示分数并用stream.show('midi'(听到来检查它们。但我发现流中的music21.tempo.MetronomeMark对象被忽略了。无论tempo对象的值是多少,它都会以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.append(note.Note('F4', type='quarter'))
tempo_test.append(note.Note('B4', type='quarter'))
tempo_test.show('midi')
节奏完全一样,大概是120。
我在jupyter笔记本上工作,运行python 3.6.13和music21 5.5.0
这在后来的版本中得到了修复。最新版本为6.7.1。