Skip to content

Releases: orchetect/MIDIKit

0.5.0

25 Jun 04:48
a53afcc
Compare
Choose a tag to compare

Incremental API Changes

Some API changes and namespace adjustments have been made to improve logical organization in the library. Also, some quality-of-life improvements come from simplified unique ID handling.

  • MIDI.IO.UniqueID is now a unified global Int32 typealias which vastly simplifies dealing with / storing endpoint IDs
  • MIDI.Event: All event types that reference MIDI note numbers now use MIDI.Note struct instead of raw number
  • MIDI.Note: Added note name style (Yamaha, Roland, Cakewalk) to determine octave numbering in note name strings
  • Misc internal methods renamed for consistency
  • Missing inline docs have been added

0.4.12

20 Jun 05:51
Compare
Choose a tag to compare

API Updates

  • Changed MIDI.Event(sysEx7RawBytes:) to MIDI.Event.sysEx7(rawBytes:) static func
  • Changed MIDI.Event(sysEx8RawBytes:) to MIDI.Event.sysEx8(rawBytes:) static func
  • Refactored NRPN API to be consistent with RPN API

Misc

  • Minor README updates
  • Updated CI to build UB2 (both macOS x86 and arm64)

0.4.11

19 Jun 22:13
bb49287
Compare
Choose a tag to compare

Incremental Improvements Update

MIDI Events

  • .noteCC event (MIDI 2.0 only): Switched value to enum case to be consistent with other events
  • RPN Tuning Program Change & Tuning Bank Select now correctly carry 7-bit values
  • Added 3D Sound Controller RPN types

MIDI Thru Connections

  • Addressed Core MDI bug with MIDI Thru connections; now errors out on macOS Big Sur or later
  • MIDI.IO.ThruConnection refactors
  • MIDI.IO.Manager: Added removeAllUnmanagedPersistentThruConnections(ownerID:)

Examples

  • Added EventParsing examples
  • Misc improvements/refactors to examples

Misc

  • Removed remaining TODO compiler warnings
  • Minor inline docs updates
  • Updated unit tests
  • Reworked GitHub CI pipeline

0.4.10

13 Jun 08:52
e357b2e
Compare
Choose a tag to compare

Important Bugfix Release

  • Fixed MIDI packet unpacking on macOS Mojave and earlier (macOS Catalina and later are unaffected)
  • .send(events:): Improved reliability of sending SysEx in a multi-event array when using old Core MIDI API

0.4.9

08 Jun 08:32
d9d6438
Compare
Choose a tag to compare

New

  • Added basic example projects, with more to come in the next release
  • Added intermediate macOS AppKit example project demonstrating endpoint selection menus
  • The MIDIKit wiki now has a Getting Started Guide as well as additional tips and troubleshooting info

Fixes and Improvements

  • InputConnection and OutputConnection : Fixed an issue where changing mode or filter properties did not immediately take effect.
  • MIDI.IO.Device: Fixed name property containing invalid data
  • MIDISystemInfo example now shows device/entity/endpoint tree to visualize object hierarchy
  • Minor improvements

0.4.8

21 Apr 07:22
7474394
Compare
Choose a tag to compare

New

  • InputConnection/OutputConnection: Refactored to use mode and filter properties
  • Various Set and Array category methods to convert endpoints to criteria collections

API Changes

MIDI.IO.Manager: .addInputConnection() and .addOutputConnection():

  • automaticallyAddNew[In/Out]puts has now become a new mode enum
  • preventAddingManaged[In/Out]puts has now been refactored into a new filter property that can filter out owned virtual endpoints as well as a set of arbitrary endpoints if needed

0.4.7

20 Apr 06:50
fba6abb
Compare
Choose a tag to compare
  • Endpoints: added displayName cached property
  • EndpointIDCriteria: added uniqueIDWithFallback case
  • Expanded custom sorted..., first(...), and filter(...) methods on object & endpoint collections
  • MIDI.IO.Manager.endpoints: Added inputsUnowned and outputsUnowned properties to return all system endpoints excluding virtual endpoints created by the Manager instance
  • Misc. minor improvements

0.4.6

18 Apr 18:23
d32662b
Compare
Choose a tag to compare
  • Updated utility methods
  • Resolved a rare crash when instancing MIDI.IO.Manager with a client name containing unusual characters

0.4.5

12 Apr 08:49
7a219c5
Compare
Choose a tag to compare
  • OutputConnection: Added automaticallyAddNewInputs and preventAddingManagedInputs (similar to InputConnection)

0.4.4

10 Apr 23:47
bf6ce74
Compare
Choose a tag to compare
  • Fixed MIDIEventPacket timestamp which was preventing some apps from receiving MIDI events