Releases: orchetect/MIDIKit
Releases · orchetect/MIDIKit
0.10.1
Fixes
- MIDIKitSync:
MTCDecoder
:timecode
property andtimecode
parameter intimecodeChangedHandler
callback closure now updates subframes component instead of it always remaining0
(#232)
Improvements
- MIDIKitSync:
MTCDecoder
: Initialtimecode
value now takes oninitialLocalFrameRate
frame rate by default ininit
if non-nil
Changes
- MIDIKitSync:
MTCReceiver
&MTCDecoder
: RenameddisplayNeedsUpdate
parameter toisFrameChanged
intimecodeChangedHandler
callback closure
0.10.0
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 toSendable
ObservableMIDIManager
: Refactored to be@Observable
(observabledevices
andendpoints
properties)- The prior
ObservableMIDIManager
class which conforms toObservableObject
has been renamedObservableObjectMIDIManager
for legacy support (observabledevices
andendpoints
properties) MIDIEndpoints
: AddedinputsOwned
andoutputsOwned
properties for convenienceMIDI1Parser
andMIDI2Parser
: Now conform toSendable
- MIDIKitControlSurfaces:
HUIHost
andHUISurface
: Now conform to@Observable
andSendable
- MIDIKitSync:
MTCGenerator
andMTCReceiver
: Now conform toSendable
- MIDIKitIO:
Changes
- All package library products are no longer forced as static
MIDIManager
: RemovedNSObject
superclass inheritance
Deprecations
- Removed
unofficialBusSelect
MIDI event - unsupported by Apple operating systems (c9bade9)
Maintenance
0.9.10
0.9.9
0.9.8
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
0.9.6
0.9.5
New
MIDIReceiverOptions
: Added.bundleRPNAndNRPNDataEntryLSB
receiver option (#198)
Changed
MIDIReceiver
:eventsWithMetadata
receiver has been renamed toevents
and inherits itsevents, timeStamp, source
closure parametersMIDIReceiver
:object(_:held:options:)
is now replaced bystrong(_:options:)
orweak(_:options:)
and, as such, no longer carries aheld
property- Removed redundant
MIDIReceiveHandler
class - Renamed
MIDIReceiveHandlerProtocol
toMIDIReceiverProtocol
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
New
- Added new
ObservableMIDIManager
subclass ofMIDIManager
that provides two new@Published
properties:observableDevices
andobservableEndpoints
MIDIKitUI
SwiftUI components are now fully functional (see theMIDIKitUI
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