- MusicalLength available now. This length class gives ability to specify lengths of objects in terms of fractions of the whole note length, for example, 1/8. You can learn more in Length section of the project's Wiki.
- Added new extension methods for managing of timed events, notes and chords: ProcessTimedEvents, RemoveTimedEvents, ProcessNotes, RemoveNotes, ProcessChords, RemoveChords.
- Read and Write methods of the MidiFile can now take a Stream as an argument to read/write MIDI file.
- MetricTime and MetricLength now implement IFormattable so you can use them in string.Format or during string interpolation with format strings supported by TimeSpan.
- SevenBitNumber and FourBitNumber now implement IComparable<SevenBitNumber> and IComparable<FourBitNumber> respectively so they can be used as key in OrderBy for example.
Fixed bugs and improvements
- Fixed #2: Non-ASCII encoding is not supported by text-based meta events.
- Fixed invalid combining of LSB and MSB in PitchValue of PitchBendEvent.
- Fixed null notes were not filtered out in Chord's constructor.
- Fixed Time was set to 0 by Chord's constructor that takes only notes as an argument.
- Improved accuracy of metric time conversion.
- ToTomeSpan method of MetricTime and MetricLength was replaced with implicit cast operator.