DryWetMIDI 6.0.0
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
andDriverVersion
properties were removed from the MidiDevice class and replaced byGetProperty
method for InputDevice and for OutputDevice.Channels
,DeviceType
,NotesNumber
,SupportsLeftRightVolumeControl
,SupportsPatchCaching
,SupportsVolumeControl
,VoicesNumber
andVolume
properties were removed from OutputDevice and replaced by GetProperty method.- Removed
InvalidSysExEventReceived
andInvalidShortEventReceived
events from InputDevice and replaced them with ErrorOccurred one. - All obsolete APIs were removed from the library.
New features
- Added VirtualDevice class which allows create virtual MIDI devices on macOS.
- Added
GetProperty
method for InputDevice and for OutputDevice. - Added
GetSupportedProperties
method for InputDevice and for OutputDevice. - Added DevicesWatcher class which allows watch adding or removing a MIDI device.
- Added
ConvertMultiple
methods to BytesToMidiEventConverter (#134). - Added FfStatusBytesPolicy property to BytesToMidiEventConverter.
- Implemented delta-times support in BytesToMidiEventConverter and MidiEventToBytesConverter (#134).
- Exploded
WritingSettings
property of MidiEventToBytesConverter into separate properties. - Exploded
ReadingSettings
property of BytesToMidiEventConverter into separate properties. - Added UnknownChannelEventPolicy property for BytesToMidiEventConverter.
- Added
GetByIndex
method for InputDevice and for OutputDevice.
Small changes and bug fixes
- MidiException class has been moved to Melanchall.DryWetMidi.Common namespace.
- MidiDeviceException is subclassed from MidiException now.
- Fixed:
GetObjects
methods of the GetObjectsUtilities sometimes return wrong chords when notes are gathered across different track chunks.