The MIDI Forum

  Sunday, 28 April 2019
  0 Replies
  9.5K Visits
New features

  • Added GetTimedEvents, GetNotes and GetChords extension methods for IEnumerable<MidiEvent>.
  • Added IsEmpty extension method for MidiFile.
  • Added GetDuration extension method for MidiFile.
  • Removed NoteStopPolicy property from Playback.
  • Added InterruptNotesOnStop property to Playback.
  • Added TrackNotes property to Playback.
  • Added NotesPlaybackStarted/NotesPlaybackFinished events to Playback.
  • Added Playback constructor with IEnumerable<ITimedObject> as an argument.
  • Added SetTime extension method for TimedEvent.
  • Added SetTimeAndLength extension method for Note and Chord.
  • Added channel parameter to methods to get program change events by GM programs and to methods to get control change events.
  • Added GetPlayback/Play extension methods for IEnumerable<Note> and IEnumerable<Chord>.
  • Added setter to OutputDevice property of Playback.
  • Implemented parsing metric time spans in 'h m s ms' format (for example, 3h5m56s897ms).
  • Added BarBeatTimeSpan constructor that takes bars number only.
  • Added Notes class that holds all available Notes.
  • Added SkipPart and TakePart extension methods for MidiFile.
  • Implemented snapping features for Playback.
  • Added EndTimeAs extension method for ILengthedObject.

Small changes and bug fixes

  • Implemented IConvertible on FourBitNumber and SevenBitNumber.
  • Moved IGrid along with its implementations from Tools namespace to Smf.Interaction.
  • Fixed: channel not set on program change events in Pattern.
  • Fixed: last part of MidiFile is lost when splitting file with ArbitraryGrid.
  • Fixed: sameTimeEventsComparison is ignored when managing timed events.
  • Fixed: non-note events are not preceding note ones on exporting Pattern to TrackChunk.
  • Fixed: quantizing with musical distance calculation type is failed.
  • Fixed: musical time spans comparison can lead to long overflow.
There are no replies made for this post yet.