我很难使用 Python 的 MIDI 库 MIDO 在 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 文件。