Skip to content

Releases: melanchall/drywetmidi

DryWetMIDI 6.1.3

23 Oct 11:58
c468caf

Choose a tag to compare

Lazy reading/writing API

DryWetMIDI now provides ways to read/write data from/to a MIDI file sequentially token by token which allows to keep low memory consumption. Here the new methods and classes aimed for this task:

Small changes and bug fixes

DryWetMIDI 6.1.2

01 Aug 16:29
8bed6f7

Choose a tag to compare

Apple Silicon support

DryWetMIDI multimedia API now supports Apple Silicon chips when used on macOS (#204). Thanks to @ThaddeusChristopher for testing!

Nativeless version

The library has now nativeless version where all native-dependent API is cut out. More info in the Nativeless package article.

New features and improvements

DryWetMIDI 6.1.1

08 Jun 20:24
a1a388a

Choose a tag to compare

This release continues unifying API to work with different MIDI objects finishing the work done in the previous release.

New features and improvements

Small changes and bug fixes

  • All exception classes are now serializable.
  • Fixed: ReplaceTempoMap throws an exception for empty track chunks collections / MIDI file.

DryWetMIDI 6.1.0

16 May 11:08
ab84ef6

Choose a tag to compare

This release focuses on unifying API to work with different MIDI objects.

Tools

First of all, new tool added – Repeater. It allows repeat MIDI data specified number of times with different options applied.

Also, some old tools were unified into single ones:

  • TimedEventsQuantizer, NotesQuantizer and ChordsQuantizer have been replaced by new Quantizer tool which can quantize objects of different types simultaneously. More than that, it can now quantize start and end times at the same time, applying randomization if specified (and thus Randomizer tool is now obsolete). More info in the Quantizer article.
  • NotesSplitter and ChordsSplitter have been replaced by new Splitter tool which can split objects of different types simultaneously. Also all methods from MidiFileSplitter class have been moved to the Splitter one. More info in the Splitter articles.

Objects managers

Also the work has been done on unifying separate manager classes for each object type. So now TimedEventsManager, NotesManager and ChordsManager classes are now obsolete. You should use TimedObjectsManager class now which can manage objects of different types simultaneously. More info in the Objects managers article.

New features and improvements

Small changes and bug fixes

Read more

DryWetMIDI 6.0.1

21 Dec 10:48
7375c9f

Choose a tag to compare

This is a minor release containing following changes:

DryWetMIDI 6.0.0

22 Oct 19:27
97266ea

Choose a tag to compare

Devices API available for macOS now

DryWetMIDI allows now work with MIDI devices on macOS! More than that, a couple of new classes are available for macOS only:

Also HighPrecisionTickGenerator implemented for macOS too so you can now use Playback with default settings on that platform. Its implementation for macOS is not good (in terms of performance) for now but will be optimized for the next release of the library.

Breaking changes

This version of the library has following breaking changes:

  • Melanchall.DryWetMidi.Devices namespace renamed to Melanchall.DryWetMidi.Multimedia to reflect its content more precisely since not only devices are there.
  • DriverManufacturer, ProductIdentifier and DriverVersion properties were removed from the MidiDevice class and replaced by GetProperty method for InputDevice and for OutputDevice.
  • Channels, DeviceType, NotesNumber, SupportsLeftRightVolumeControl, SupportsPatchCaching, SupportsVolumeControl, VoicesNumber and Volume properties were removed from OutputDevice and replaced by GetProperty method.
  • Removed InvalidSysExEventReceived and InvalidShortEventReceived events from InputDevice and replaced them with ErrorOccurred one.
  • All obsolete APIs were removed from the library.

New features

Small changes and bug fixes

DryWetMIDI 5.2.1

20 Jun 15:18
ee62dfc

Choose a tag to compare

New features and improvements

Small changes and bug fixes

DryWetMIDI 5.2.0

26 Mar 19:10
6f65d79

Choose a tag to compare

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

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](https://melanchall.github.io/drywetmidi/obsolet...
Read more

DryWetMIDI 5.1.2

21 Nov 14:04
4be7180

Choose a tag to compare

Obsolete API

New section has been added to documentation site: Obsolete. This section contains the list of methods and classes that are obsolete and thus will be removed by a next release.

The current list of obsolete API:

New features and improvements

Small changes and bug fixes

  • Added value validation in setters of some MIDI events classes properties.
  • Edge Note Off events will always be put to current part on MIDI file splitting (#99).
  • Fixed: Events transferred incorrectly between parts on MIDI file splitting (#99).
  • Fixed: SmpteOffsetEvent writes in wrong way.
  • Fixed: SmpteOffsetEvent equality check is wrong.
  • Fixed: Failed to use devices API in UWP app (#95).

DryWetMIDI 5.1.1

29 Jun 17:42
7a94d03

Choose a tag to compare

New features

Small changes and bug fixes

  • Chords parsing uses CNT now.
  • Fixed: Multi-thread access to active notes metadata inside Playback can cause exceptions.
  • Fixed: Playback.EventPlayed not fired for meta events (#82).
  • Fixed: Slash chord name contains Sharp instead of # for sharped notes as result of GetNames.