DryWetMIDI 5.2.0
Performance
Methods to get, process and remove timed events and notes now work faster and consume less memory. Full tables with benchmarks results can be found here:
New features and improvements
- Added
GetObjectsUtilities
class containing methods that allow get objects of different types from the input ones (or MIDI file, for example). ProcessTimedEvents
andRemoveTimedEvents
methods return now count of processed/removed timed events.ProcessNotes
andRemoveNotes
methods return now count of processed/removed notes.ProcessChords
andRemoveChords
methods return now count of processed/removed chords.- Added
IsEnabled
property toMidiDevice
. - Added methods to
Playback
to move to snap points by data. - All move-to-by-snap-points methods of
Playback
returnbool
now to indicate whether time changed or not. - Added
PlaybackStart
andPlaybackEnd
properties toPlayback
. - Added
IsEnabled
toPlaybackSnapping
. - Added
PlaybackSnapping.Clear
method. - Added
TrackProgram
,TrackPitchValue
andTrackControlValue
toPlayback
. - Removed reading handlers API.
- Added
<
,>
,<=
,>=
operators forTempo
andTimeSignature
. BeatsPerMinute
property ofTempo
is now ofdouble
type.- Added
settings
parameter toSplitByChannel
method. - Added
settings
parameter toSplitByNotes
method. - Return type of
GetTimedEvents
,GetNotes
andGetChords
changed fromIEnumerable<T>
toICollection<T>
. - Added
NoteDetectionSettings
toGetNotes
,ProcessNotes
andRemoveNotes
. - Added
ChordDetectionSettings
toGetChords
,ProcessChords
andRemoveChords
. - Added
ChordDetectionSettings
toChordsQuantizingSettings
andChordsRandomizingSettings
. - Added
NoteDetectionSettings
toNotesQuantizingSettings
andNotesRandomizingSettings
. - Added
SilentNoteOnPolicy
property toInputDevice
. - Added
SplitByChunks
method toMidiFileSplitter
.
Small changes and bug fixes
- Some methods are now obsolete:
GetTimedEventsAndNotesUtilities
(OBS5);GetNotesAndRestsUtilities
(OBS6);TimedEventsManagingUtilities.ToTrackChunk
,NotesManagingUtilities.ToTrackChunk
,ChordsManagingUtilities.ToTrackChunk
(OBS7);TimedEventsManagingUtilities.ToFile
,NotesManagingUtilities.ToFile
,ChordsManagingUtilities.ToFile
(OBS8);TimedEventsManagingUtilities.AddTimedEvents
,NotesManagingUtilities.AddNotes
,ChordsManagingUtilities.AddChords
(OBS9).
- Discard high resolution timer request on playback stop (#106).
- Implemented
ICollection<MidiEvent>
onEventsCollection
. - Implemented
ICollection<MidiChunk>
onChunksCollection
. - Fixed:
PatternUtilities.CombineInParallel
last action moves back to previous time (#112). - Fixed:
Playback.MoveToNextSnapPoint
works incorrectly for snap point at zero. - Fixed:
MetricTimeSpan.Clone
works incorrectly. - Fixed: Wrong order of actual and expected counts arguments on passing to
UnexpectedTrackChunksCountException
constructor.