var lastNotesByChannels = new Dictionary<FourBitNumber, Note>();
foreach (var note in midiFile.GetNotes())
{
if (lastNotesByChannels.TryGetValue(note.Channel, out var lastNote))
{
var interval = note.NoteNumber - lastNote.NoteNumber;
// do something with interval
}
lastNotesByChannels[note.Channel] = note;
}
1条答案
按热度按时间55ooxyrt1#
我是DryWetMIDI的作者。我不确定你到底想要什么,但也许这段代码会帮助你:
这里我们处理每个通道相邻音符之间的间隔。请根据您的任务调整此代码。
请注意,该库有全面的文档,请使用它:https://melanchall.github.io/drywetmidi。