次の例では、Next MIDI を用いて、MIDI ファイルの各トラックに含まれる MIDI イベント数、ノート数、プログラムチェンジの数、コントロールチェンジの数、メタイベント数、エクスクルーシブイベント数を表示します。
using System; using System.IO; using System.Text; using NextMidi.Data.Track; using NextMidi.DataElement; using NextMidi.DataElement.MetaData; using NextMidi.Filing.Midi; /* ... */ static void Main(string[] args) { // MIDI ファイルを指定する if (args.Length != 1) { Console.WriteLine("1 source file required"); return; } string fname = args[0]; if (!File.Exists(fname)) { Console.WriteLine("File does not exist"); return; } // MIDI ファイルを読み込む var midiData = MidiReader.ReadFrom(fname, Encoding.GetEncoding("shift-jis")); Console.WriteLine(); Console.WriteLine("Track Evnt Note Prog Cont Meta Excl Title"); Console.WriteLine("----- ---- ---- ---- ---- ---- ---- ----------------"); for (int i = 0; i < midiData.Tracks.Count; i++) { var track = midiData.Tracks[i]; Console.WriteLine("{0} {1} {2} {3} {4} {5} {6} {7}", i.ToString().PadLeft(5), track.GetData<MidiEvent>().Count.ToString().PadLeft(4), track.GetData<NoteEvent>().Count.ToString().PadLeft(4), track.GetData<ProgramEvent>().Count.ToString().PadLeft(4), track.GetData<ControlEvent>().Count.ToString().PadLeft(4), track.GetData<MetaEvent>().Count.ToString().PadLeft(4), track.GetData<ExclusiveEvent>().Count.ToString().PadLeft(4), track.GetTitle(i == 0)); } }