public static MidiChunk ReadNextChunk(Stream str) { LoadChunkTypeMap(); var chunkType = MidiFileHelper.ReadString(str, 4); var length = MidiFileHelper.ReadInt32(str); var buffer = new byte[length]; str.Read(buffer, 0, buffer.Length); var chunk = (MidiChunk)Activator.CreateInstance(ChunkTypeMap[chunkType]); chunk.Type = chunkType; chunk.Length = length; chunk.Parse(buffer); return(chunk); }
protected override void Parse(byte[] data) { Format = MidiFileHelper.ReadInt16(data.Take(2)); NoOfTracks = MidiFileHelper.ReadInt16(data.Skip(2).Take(2)); Division = MidiFileHelper.ReadInt16(data.Skip(4).Take(2)); }