예제 #1
0
        protected MIDIEvent LoadMidiEvent(MIDITrack track)
        {
            MIDIEvent result = new MIDIEvent();

            result.absTime     = Common.GetVariableNumber(ref ByteBuff, ref currentOffset);
            result.MidiMessage = GetMidiMessage(track);
            return(result);
        }
예제 #2
0
        protected void ProcessMidiEvents(MIDITrack track)
        {
            track.MidiEvents = new List <MIDIEvent>();
            int _old;

            while (track.Info.Length > 0)
            {
                _old = currentOffset;
                MIDIEvent midiEvent = LoadMidiEvent(track);
                track.AbsTime    += midiEvent.absTime;
                midiEvent.absTime = track.AbsTime;
                track.MidiEvents.Add(midiEvent);
                track.Info.Length -= (currentOffset - _old);
            }
        }