HIGH-LEVEL DATA MANAGING
DryWetMIDI 1.1.0 introduces new namespace – Melanchall.DryWetMidi.Smf.Interaction – that contains a lot of new objects which purpose is to provide a way to manage MIDI data at the higher level. Key features provided by classes from this namespace are:
Now you can work with absolute time of MIDI events and manage specific events via dedicated events managers:
- TimedEventsManager to manage MIDI events by absolute time;
- NotesManager to manage notes of a MIDI file;
- ChordsManager to manage chords of a MIDI file;
- TempoMapManager to manage tempo map of a MIDI file.
Custom time objects
All times are presented in a MIDI file as some integer values meaning of which is defined by the time division of the file. In practice it can be more useful to operate by time expressed in more understandable format such as hours, minutes and seconds. DryWetMIDI provides now following time classes:
Custom length objects
As with time DryWetMIDI provides custom class for length – [url=https://github.com/melanchall/drywetmidi/wiki/Length#metriclength]MetricLength[/utl] for hours, minutes, seconds.
- MidiEvent doesn't implement ICloneable now. It still has Clone method but now it returns MidiEvent instead of object.
- NoteEvent class added as the base class for NoteOnEvent and NoteOffEvent.
- TrackChunkUtilities static class added with extension methods for TrackChunk.
- IndexOf method added to EventsCollection and ChunksCollection.