Skip to content

Releases: orchetect/MIDIKit

0.10.4

10 Jul 03:24
d232752
Compare
Choose a tag to compare

Improvements

  • Restored backwards compatibility with macOS 10.13 and iOS 12

    This paved the way for the deletion of the divergent 0.9.x branch and related release tags

0.10.3

08 Jul 21:42
Compare
Choose a tag to compare

Fixes

  • Fixed internal macOS 26 SDK namespace collisions introduced in Xcode 26 beta 2 (#246)

0.10.2

21 Jun 20:39
f92addd
Compare
Choose a tag to compare

Fixes

  • MIDIManager: Fixed bug where endpoints.outputsOwned was not being populated (#244) (Thanks @dsmurfin for the PR)

0.10.1

10 Feb 00:18
Compare
Choose a tag to compare

Fixes

  • MIDIKitSync: MTCDecoder: timecode property and timecode parameter in timecodeChangedHandler callback closure now updates subframes component instead of it always remaining 0 (#232)

Improvements

  • MIDIKitSync: MTCDecoder: Initial timecode value now takes on initialLocalFrameRate frame rate by default in init if non-nil

Changes

  • MIDIKitSync: MTCReceiver & MTCDecoder: Renamed displayNeedsUpdate parameter to isFrameChanged in timecodeChangedHandler callback closure

0.10.0

03 Feb 00:35
Compare
Choose a tag to compare

Overview

This release represents an overhaul of internals to make MIDIKit Swift 6 strict concurrency compatible.

Efforts have been made to retain as much flexibility and backwards-compatibility as possible while adopting new language features and requirements where appropriate.

Note

Minimum platform requirements are now macOS 10.15, iOS 13, tvOS 13, watchOS 6.
Xcode 16 is required to build.

Improvements

  • Refactors for Swift 6 strict concurrency (#222, #228)
    • MIDIKitIO:
      • MIDIManager: Now conforms to Sendable
      • ObservableMIDIManager: Refactored to be @Observable (observable devices and endpoints properties)
      • The prior ObservableMIDIManager class which conforms to ObservableObject has been renamed ObservableObjectMIDIManager for legacy support (observable devices and endpoints properties)
      • MIDIEndpoints: Added inputsOwned and outputsOwned properties for convenience
      • MIDI1Parser and MIDI2Parser: Now conform to Sendable
    • MIDIKitControlSurfaces:
      • HUIHost and HUISurface: Now conform to @Observable and Sendable
    • MIDIKitSync:
      • MTCGenerator and MTCReceiver: Now conform to Sendable

Changes

  • All package library products are no longer forced as static
  • MIDIManager: Removed NSObject superclass inheritance

Deprecations

  • Removed unofficialBusSelect MIDI event - unsupported by Apple operating systems (c9bade9)

Maintenance

  • Migrated unit tests to Swift Testing (#228)
  • Removed XCTestUtils dependency (#228)
  • Codebase cleanup
  • Updated documentation
  • Updated example projects

0.9.10

24 Jan 00:49
815affd
Compare
Choose a tag to compare

Fixed

  • MIDIKitSMF: Fixed MIDI file parse bug when file contains an unrecognized chunk type

0.9.9

14 Nov 08:10
Compare
Choose a tag to compare

Maintenance

  • Updated for TimecodeKit 2.3.3

0.9.8

20 Oct 00:12
Compare
Choose a tag to compare

Note

This release bumps the package toolchain version to Swift 5.9, and minimum platforms to macOS 10.13 and iOS 12

Added

  • MIDIKitSMF: Fixed text decoding bug introduced in macOS 15.0
  • Added missing Identifiable conformances to types

Maintenance

  • Preliminary refactors for Swift 6 (not yet passing strict checks)
  • Minor example project cleanup
  • Updated and cleaned up unit tests

0.9.7

21 Jul 22:08
Compare
Choose a tag to compare

Maintenance

0.9.6

07 May 20:14
Compare
Choose a tag to compare

Fixed

  • Fixed incorrect CC number in programChange event MIDI 1.0 raw bytes generation (#211)

Maintenance

  • Fixed minor bug in SwiftUI Multiplatform/EndpointPickers example project (#202)
  • Mitigation for Swift 5.10 @_implementationOnly compiler warnings (12d8f13)
  • Updated unit tests
  • Minor docs updates