コード例 #1
0
        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());
        }
コード例 #2
0
        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;
            }
        }