- Added tools to perform complex tasks. Please read Tools section of the library Wiki to learn more and check Melanchall.DryWetMidi.Tools namespace. These tools are notes/chords splitter, quantizer, randomizer.
- Added music theory API. Check Melanchall.DryWetMidi.MusicTheory namespace. Also NoteDefinition, IntervalDefinition and OctaveDefinition classes were renamed to Note, Interval and Octave respectively and moved to this new namespace.
- Added General MIDI Level 1/2 support API. Check Melanchall.DryWetMidi.Standards namespace.
- Added SetProgram method to PatternBuilder class. This method can be used in conjunction with the new GM 1/2 support API mentioned above.
- Added AddNotes, AddChords and AddTimedEvents methods to TimedEventsManagingUtilities, NotesManagingUtilities and ChordsManagingUtilities classes respectively.
- Added ToFile and ToTrackChunk methods to TimedEventsManagingUtilities, NotesManagingUtilities and ChordsManagingUtilities classes respectively.
- Added Clone method to Note, Chord and TimedEvent classes.
- Added TimeAs and LengthAs non-generic methods where the desired type of result should be passed as an argument of the TimeSpanType type. Added non-generic versions of methods inside TimeConverter and LengthConverter classes that take TimeSpanType too.
- Implemented IComparable, IComparable<T> and IEquatable<T> on time span classes.
- Added MakeNotes method to the NotesManagingUtilities class which iterates through the specified collection of TimedEvent returning Note for Note On/Note Off events pairs and original TimedEvent for all other events.
- Time and length conversions between different representations were significantly speeded up.
- Eliminated unnecessary resorting in ValueLine.Values getter.
- Eliminated reordering in GetNotes, GetChords and GetTimedEvents methods.
- FourBitNumber and SevenBitNumber moved to the Melanchall.DryWetMidi.Common namespace.