Python Music21在保存到midi文件时一次播放所有音符
在Python Music21在保存到midi文件时一次播放所有音符,python,midi,music21,Python,Midi,Music21,在music21toolkit中尝试组合顺序和弦和平行和弦时,我注意到了这个问题 ch = stream.Part([ stream.Measure([note.Rest(duration=duration.Duration(type='eighth'))]), stream.Measure([note.Note('C4'), note.Note('F4')]), stream.Measure([note.Rest(duration=duration.Duration(type='h
music21
toolkit中尝试组合顺序和弦和平行和弦时,我注意到了这个问题
ch = stream.Part([
stream.Measure([note.Rest(duration=duration.Duration(type='eighth'))]),
stream.Measure([note.Note('C4'), note.Note('F4')]),
stream.Measure([note.Rest(duration=duration.Duration(type='half'))]),
stream.Measure([chord.Chord([note.Note('C4'), note.Note('F4')], duration=duration.Duration(type='half'))])
])
当ch.write('musicxml.png)
但当另存为MIDI时:ch.write('MIDI')
所有音符都会同时播放。(我无法连接MIDI,因此无法卸载)
这是
音乐21
中的错误吗?或者我搞砸了什么?您创建的每个度量值都在偏移量0处,因此当您将它们传递给Part()时,它们都会在偏移量0处插入,这意味着同时插入。xml编写器试图修改符号(调用makeNotation
etc),但midi编写器更具文字性
尝试将每个度量值追加到stream.Part()中,而不是将它们传递给构造函数。或者在将其写入midi之前,尝试调用.makeNotation()
00000000 4d 54 68 64 00 00 00 06 00 01 00 01 04 00 4d 54 |MThd..........MT|
00000010 72 6b 00 00 00 3f 00 ff 03 00 00 e0 00 40 00 90 |rk...?.......@..|
00000020 45 5a 00 90 42 5a 00 90 46 5a 00 90 45 5a 00 90 |EZ..BZ..FZ..EZ..|
00000030 42 5a 00 90 46 5a 88 00 80 45 00 00 80 42 00 00 |BZ..FZ...E...B..|
00000040 80 46 00 88 00 80 45 00 00 80 42 00 00 80 46 00 |.F....E...B...F.|
00000050 88 00 ff 2f 00 |.../.|
00000055