答案 0 :(得分:0)
答案 1 :(得分:0)
从DryWetMidi 1.1.0开始,您只需获取MIDI文件的所有注释即可:
IEnumerable<Note> notes = midiFile.GetNotes();
Note
类包含您需要的所有属性:NoteNumber
,NoteName
,Octave
,Length
,Time
,Velocity
,OffVelocity
。
要将Time
作为&lt;小时,分钟,秒&gt; 或&lt; bars,beats&gt; ,您可以使用TimeAs
扩展名方法:
TempoMap tempoMap = midiFile.GetTempoMap();
MetricTimeSpan metricTime = note.TimeAs<MetricTimeSpan>(tempoMap);
BarBeatTimeSpan musicalTime = note.TimeAs<BarBeatTimeSpan>(tempoMap);
对于Length
,您可以使用LengthAs
扩展方法:
TempoMap tempoMap = midiFile.GetTempoMap();
MetricTimeSpan metricLength = note.LengthAs<MetricTimeSpan>(tempoMap);
BarBeatTimeSpan metricLength = note.LengthAs<BarBeatTimeSpan>(tempoMap);