Skip to content

DryWetMIDI 8.0.0

Choose a tag to compare

@melanchall melanchall released this 18 May 16:48
· 30 commits to master since this release
b82d95c

Major playback improvements

Now it’s possible to change playback’s data on the fly (#78)! It was a big challenge to implement this functionality (do you even use red-black trees?). But now you can add, remove and change objects without needing to recreate an instance of the Playback or even stop it. You’ll find the detailed guide on how to use the feature in the Dynamic changes article of the library docs.

Also a bunch of bugs related to the Playback were fixed:

Data tracking is now on by default. So in case of jumps in time you’ll get correctly applied program, pitch and control values. TrackNotes is now true by default too. Of course you can turn the feature off via corresponding properties if you want.

Several new things were added:

Please note that there are some breaking changes:

  • Play method has been removed. It causes confusion and does nothing but just calling Start and then SpinWait.SpinUntil(() => !IsRunning). You can do these actions by yourself if you for some reason want the blocking playback.
  • PlaybackHint has been removed from PlaybackSettings. There was no noticeable performance gain in using this feature. You can just disable data tracking if you want.
  • Snapping has been reworked. First of all, there is no Snapping property within the Playback anymore. Snapping functionality was moved just right into the Playback. Snapping.IsEnabled is replaced with IsSnappingEnabled. SnapToNotesStarts and SnapToNotesEnds methods are replaced with the much more flexible SnapToEvents one.

New features and improvements

Small changes and bug fixes