Skip to content

Releases: orchetect/MIDIKit

0.9.5

27 Dec 03:47
b4947ed
Compare
Choose a tag to compare

New

  • MIDIReceiverOptions: Added .bundleRPNAndNRPNDataEntryLSB receiver option (#198)

Changed

  • MIDIReceiver: eventsWithMetadata receiver has been renamed to events and inherits its events, timeStamp, source closure parameters
  • MIDIReceiver: object(_:held:options:) is now replaced by strong(_:options:) or weak(_:options:) and, as such, no longer carries a held property
  • Removed redundant MIDIReceiveHandler class
  • Renamed MIDIReceiveHandlerProtocol to MIDIReceiverProtocol and made it public

Fixed

  • MIDIEvent.pressure: Debug description now includes both MIDI 1.0 & MIDI 2.0 value representation, consistent with other event descriptions

Maintenance

  • Internal refactors to reduce MIDIReceiver boilerplate
  • Updated docs
  • Minor example project updates

0.9.4

10 Nov 16:09
73b4779
Compare
Choose a tag to compare

New

  • Added new ObservableMIDIManager subclass of MIDIManager that provides two new @Published properties: observableDevices and observableEndpoints
  • MIDIKitUI SwiftUI components are now fully functional (see the MIDIKitUI example project)
  • Significant updates to the EndpointPickers example project to use endpoint display name as a fallback endpoint identity

Improvements

  • Refactored MIDIEndpointFilter Collection methods and resolved ambiguities

Fixed

  • Fixed potential crash in rare cases when Core MIDI property getter produces an error

Maintenance

  • All example projects have been further cleaned up and various issues resolved
  • Unit tests updated
  • Docs updated

0.9.3

30 Oct 08:18
Compare
Choose a tag to compare
  • Added Sendable conformance to most concrete types
  • Refactored Error types to be LocalizedError, added missing description strings
  • Refactored MIDIReceiver to use new MIDIReceiverOptions option set

0.9.2

26 Oct 17:31
Compare
Choose a tag to compare
  • Maintenance update to clean up Example projects

0.9.1

02 Oct 03:11
Compare
Choose a tag to compare
  • MIDIEvent: Fixed description string formatting for noteOn, noteOff, noteCC, notePitchBend and notePressure events
  • Resolved an issue that could prevent app archival

0.9.0

28 Sep 11:40
Compare
Choose a tag to compare

Improvements

  • MIDIManager: Streamlined addInputConnection/addOutputConnection API
  • Fixed proactive Swift 6 warning about shadowed associated type
  • Updated to TimecodeKit 2.0.1
  • Updated docs

API Changes

  • MIDIProtocolVersion: Renamed cases, removing underscore prefix
  • MIDIFile.FrameRate: Renamed cases, removing underscore prefix
  • MIDIFile.SMPTEOffsetFrameRate: Renamed cases, removing underscore prefix
  • MIDIFileEvent.DeltaTime: Renamed cases, removing underscore prefix

0.8.11

20 Jun 08:16
Compare
Choose a tag to compare
  • MIDIFile Track: Added eventsAtBeatPositions() method

0.8.10

20 Jun 05:24
Compare
Choose a tag to compare

New

  • MIDIEvent: Added midi1RawStatusByte() method
  • MIDIEvent: Added midi1RawDataBytes() method

Improvements

  • MIDIFile: Improved memory usage and load times when loading very large MIDI files

Docs

  • Added iOS background send/receive guide (#187)
  • Minor updates

0.8.9

05 May 22:22
Compare
Choose a tag to compare

Changes

  • Bumped to Swift 5.7 minimum requirement
  • MIDIEvent.NoteCC.PerNoteController: Added registered(UInt8) static method

Docs

0.8.8

13 Mar 21:39
Compare
Choose a tag to compare
  • MIDIFile: gained Hashable conformance (#174)
  • Updated PassiveDataReader to fix a potential crash when parsing MIDIFile (#175)