Мне трудно писать аккорды в MIDI-файле, используя MIDO, MIDI-библиотеку для Python.
У меня есть список из 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.