Skip to content

Releases: orchetect/MIDIKit

0.8.1

01 Feb 22:45
Compare
Choose a tag to compare

New

  • SysEx7 inits that take UInt8 data bytes now throw; Added non-throwing UInt7 overloads.
  • AnyMIDIIOObject.Property: Added name property
  • MIDIIOObject: Added propertyStringValue(for:)

Fixes

  • MIDIIONotification: Fixed missing metadata for sequential remove notifications (#162)

Changes

  • MIDIIONotification: Renamed parameters for added, removed, and propertyChanged
  • MIDIIOObject: Renamed propertiesAsStrings() to propertyStringValues()

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

21 Jan 09:34
Compare
Choose a tag to compare

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 the eventsLogging() receiver)
  • UInt7Pair: Added pretty output description
  • Updated example projects to reflect new rpn and nrpn cases for MIDIEvent
  • 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

16 Jan 09:51
ed00e1c
Compare
Choose a tag to compare
  • Added hide() and show() 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

15 Dec 07:08
aa68756
Compare
Choose a tag to compare

Internal updates for TimecodeKit 1.6.0 API changes.

No functional changes from MIDIKit 0.7.1.

0.7.1

27 Oct 01:40
5fb631b
Compare
Choose a tag to compare

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 and device property)
  • MIDI event filters are now more robust

0.7.0

12 Oct 05:34
17ecbb5
Compare
Choose a tag to compare

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 more HUIHostBank 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)

0.6.1

02 Sep 02:56
80baa7a
Compare
Choose a tag to compare
  • Resolved: Under certain conditions when building or archiving a release build, the Swift compiler was throwing build errors related to synthesizing protocol conformance. The issue should now be resolved.

0.6.0

30 Aug 05:11
829c183
Compare
Choose a tag to compare

MIDIKit 0.6.0

What's New

  • Library-wide API clarification and more consolidated type names.

  • Curated documentation:

    • Written with DocC

    • Includes all the getting started guides previously found in the Wiki and more

    • Easy to navigate directly within Xcode using the Build Documentation menu command, or browsable online

      (Note: Xcode 14 builds docc more reliably than Xcode 13 but you can always browse the online docs)

  • MIDIKit is now a mono-repo: All extension repos (SMF, Sync, ControlSurfaces) are now incorporated as package products within MIDIKit, and the external repos are now deprecated. All of MIDIKit can be imported with a single import, or individual targets can be imported if only certain functionality is required. See the documentation for details.

  • Refactors and improvements

Note: MIDIKit 0.6.0 contains substantial API changes from 0.5.x, and now requires Swift 5.5 / Xcode 13.0+.

0.5.2

25 Jul 05:18
Compare
Choose a tag to compare

New Features

  • MIDI.Event.sysEx7(rawHexString:) static initializer
    • capable of parsing a string of hex byte values (ie: "F7 01 02 03 F0" or "f7010203f0")
  • MIDI.Event.SysEx7 instance: Added .midi1RawHexString() method
    • returns the raw message bytes as a string of hex values

Minor Changes

  • MIDI.Event.noteManagement(): Added note: parameter label for consistency

0.5.1

02 Jul 01:24
Compare
Choose a tag to compare
  • Added MIDI 2.0 utility messages
  • MIDI.Byte.Pair: Added UInt16 interop
  • Enabled build & test on tvOS and watchOS (#124)
  • Updated examples and unit tests for API changes