MIDIファイルを解析するために任意のオープンソースライブラリを使用し、そのデータを目的の形式のテキストファイルに変換することができます。例えば、DryWetMIDIであなたは、このコードを使用することができます:最初の数字はノート番号(60 = C4)である
37 0 480
37 960 480
37 1920 480
37 2400 480
70 2640 192
は、二つある。このようにテキストファイルを生成します
public static void ConvertMidiToText(string midiFilePath, string textFilePath)
{
var midiFile = MidiFile.Read(midiFilePath);
File.WriteAllLines(textFilePath,
midiFile.GetNotes()
.Select(n => $"{n.NoteNumber} {n.Time} {n.Length}"));
}
ConvertMidiToText
方法MIDIティックで始まる時間と、第3の時間はMIDIティックで長さです。
時間:分:秒の形式で時間と長さを書き込むこともできます。このコード
public static void ConvertMidiToText(string midiFilePath, string textFilePath)
{
var midiFile = MidiFile.Read(midiFilePath);
TempoMap tempoMap = midiFile.GetTempoMap();
File.WriteAllLines(textFilePath,
midiFile.GetNotes()
.Select(n => $"{n.NoteNumber} {n.TimeAs<MetricTimeSpan>(tempoMap)} {n.LengthAs<MetricTimeSpan>(tempoMap)}"));
}
は、このようなテキストを生成します:
37 00:00:00 00:00:00.4800000
37 00:00:00.9600000 00:00:00.4800000
37 00:00:01.9200000 00:00:00.4800000
37 00:00:02.4000000 00:00:00.4800000
70 00:00:02.6400000 00:00:00.1920000