我很难使用MIDO在MIDI文件中写和弦,MIDO是Python的MIDI库。
我有一个100个和弦的列表,在列表中存储了音符。因此,下面代码中的每个和弦是60,63,67,就像Cmin一样。每一次的计时(以秒为单位)存储在chordTimes列表中。
我在列表中迭代,
for i in range(1, len(chords)):
chordNotes = chordMidiNotes(chords[i], extraBass= False)[0]
chordSymbol = chordMidiNotes(chords[i], extraBass= False)[1]
for note_value in chordNotes: # result has chord notes
track.append(Message('note_on', note=note_value, velocity=100, time=0))
for note_value in chordNotes: # result has chord notes
track.append(Message('note_off', note=note_value, velocity=127, time=time_in_ticks(chordTimes[i], mo)))
mo.save("songWithChords.mid") 但是当我打开文件时,和弦同时开始,然而,第一个音符在最后一个和弦之前结束,下面的一个在最后一个和弦之前结束,后一个和弦在它之前几个节拍再次停止,……正如你在图片中看到的。我正在使用类型1的midi文件。

发布于 2020-04-19 18:56:08
https://stackoverflow.com/questions/61299852
复制相似问题