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