public byte[] ToBytes() { var b = new List <byte>(); Header.NumberOfTracks = (ushort)TrackChunks.Count(); b.AddRange(Header.ToBytes()); foreach (var trck in TrackChunks) { b.AddRange(trck.ToBytes()); } return(b.ToArray()); }
public MIDIFile(string fileName) { var arr = File.ReadAllBytes(fileName); Header = new MIDIHeader(arr); var counter = 0; while (counter + 14 < arr.Length) { var tc = new MIDITrackChunk(arr.Skip(14 + counter).ToArray()); TrackChunks.Add(tc); counter += (int)tc.Size + 8; } }