Releases: orchetect/MIDIKit
Releases · orchetect/MIDIKit
0.8.4
New
- MIDIKit now requires Xcode 14 to build. It still supports macOS 10.12+ and iOS 10+ once compiled.
MIDIDevice
: Addedinputs
andoutputs
convenience properties to return endpoint arrays (#129)MIDIDevices
: Addedinputs
andoutputs
convenience properties to return endpoint dictionaries (#129)
Improvements
MIDIInput
/MIDIInputConnection
: Resolved potential race condition in receiver- Memory access for legacy
MIDIPacket
/MIDIPacketList
is more stable MIDIPacketList
: Fixed bug when sending legacy packet list containing multiple packets- Minor documentation & unit test updates
0.8.3
0.8.2
Fixes
-
MIDI thru connections are now available on all supported platforms (#164)
Background
- A Core MIDI bug where all MIDI thru connections were non-functional affected all Apple platforms for two generations:
- macOS 11.x through 12.x and iOS 14.x through 15.x were affected
- The issue was resolved in macOS 13.0 and iOS 16.0
Resolution
- For non-persistent thru connections on affected platforms, MIDIKit now transparently implements an internal event pipe that replicates the functionality of Core MIDI. This means
midiManager.addThruConnection()
can be called and will always function as expected, regardless of platform. - For persistent thru connections on affected platforms, no internal/automatic workaround is possible, and calling
midiManager.addThruConnection()
will result in an error being thrown. For this reason it is recommended to not utilize or rely on these persistent connections, and to defer to non-persistent ones instead.
- A Core MIDI bug where all MIDI thru connections were non-functional affected all Apple platforms for two generations:
0.8.1
New
SysEx7
inits that takeUInt8
data bytes now throw; Added non-throwingUInt7
overloads.AnyMIDIIOObject.Property
: Addedname
propertyMIDIIOObject
: AddedpropertyStringValue(for:)
Fixes
MIDIIONotification
: Fixed missing metadata for sequentialremove
notifications (#162)
Changes
MIDIIONotification
: Renamed parameters foradded
,removed
, andpropertyChanged
MIDIIOObject
: RenamedpropertiesAsStrings()
topropertyStringValues()
Examples
- Example projects have been consolidated and reorganized. SwiftUI examples are now multiplatform projects that can build for iOS or macOS destinations.
- Added new SystemNotifications SwiftUI example project
- MIDISystemInfo example project has been improved
Docs
- Added MIDI Show Control guide
0.8.0
New
- RPN/NRPN messages are now fully implemented for I/O and MIDI file read/write (#158)
Improvements
MIDIEvent
:description
now outputs both MIDI 1.0 and MIDI 2.0 values for events to avoid confusion for those unfamiliar with MIDI 2.0 (also used when logging using theeventsLogging()
receiver)UInt7Pair
: Added pretty outputdescription
- Updated example projects to reflect new
rpn
andnrpn
cases forMIDIEvent
- Docs updated
- Unit tests updated
Fixes
- RPN/NRPN UMP packets may have failed to parse before
- Setting
MIDIManager.preferredAPI = .legacyCoreMIDI
now works correctly on macOS 13+ and iOS 16+
0.7.3
- Added
hide()
andshow()
to virtual endpoints to control visibility to the user in the system endpoints MIDIReceiver.create()
now has public access level (for power-users)- Moved various Core MIDI utilities to MIDIKitInternals with public access level (for power-users)
- Minor formatting and housekeeping
0.7.2
0.7.1
Improvements for Receiving MIDI Events
- Added a new
.eventsWithMetadata { }
MIDI event receive handler that includes MIDI packet timestamp and the source endpoint
Improvements for Object Properties
- MIDI endpoints, entities and devices now have unified property names
- MIDI endpoints, entities and devices have additional contextual properties (ie: endpoints offer an
entity
anddevice
property) - MIDI event filters are now more robust
0.7.0
What's New
HUI
- HUI objects and value types have been substantially refactored and improved, and various issues resolved. (#136 / #139)
- A new
HUIHost
object is now available for HUI host applications to manage one or moreHUIHostBank
remote HUI devices. (#136 / #139)
Examples
- Bluetooth MIDI example projects have been updated to demonstrate configuring your iOS app as a local Bluetooth MIDI peripheral which other devices can connect to. (#141 / #142)
- HUITest example application now demonstrates a simple HUI host and the HUI surface UI has been improved with functioning faders, V-Pots and jog wheel. (#139)