Skip to content

Releases: orchetect/MIDIKit

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

0.4.3

09 Apr 12:51
1aa3b7e
Compare
Choose a tag to compare
  • Resolved crashes while parsing MIDI 2.0 events on certain systems

0.4.2

06 Apr 01:07
a5ae3c9
Compare
Choose a tag to compare
  • Fixed NRPN/RPN LSB controller number, added basic unit tests for them
  • InputConnection/OutputConnection: Added disambiguation for add()/remove() overloads
  • Added more flexibility to event CC filters
  • Added Getting Started Guide
  • Updated docs

0.4.1

03 Mar 08:53
18ae88e
Compare
Choose a tag to compare
  • MIDI.IO.Manager
    • Added complete set of Core MIDI notifications to notificationHandler with MIDIKit data types
    • Removed systemEndpointsChanged notification case as it's redundant now

0.4.0

28 Feb 06:17
e767c38
Compare
Choose a tag to compare

Release 0.4.0 brings more versatility and stability.

Summary of New Features

  • InputConnection and OutputConnection can now have endpoints added or removed from them.
  • InputConnection can optionally aggregate all MIDI outputs in the system in order to act as a MIDI event sink that receives from all MIDI outputs in the system, and will automatically add new outputs that appear in the system during its lifecycle.
  • Added support for network MIDI sessions

Connections

  • InputConnection: Added add(outputs:), remove(outputs:), removeAllOutputs()
  • OutputConnection: Added add(inputs:), remove(inputs:), removeAllInputs()
  • Added endpoint array overloads to addInputConnection(:::) and addOutputConnection(::)
  • InputConnection: Added automaticallyAddNewOutputs property
  • InputConnection: Added preventAddingManagedOutputs property
  • Input/Output: added endpoint property

Endpoints

  • Added current() static constructor for *Endpoint sets and arrays

Network MIDI

  • Added MIDI network session support: setNetworkSession(policy:) static method in MIDI.IO

Misc

  • Manager no longer disposes of its MIDI client reference on deinit, as per Apple docs
  • Unit tests updated

0.3.1

25 Jan 07:43
7c18de6
Compare
Choose a tag to compare
  • Fixed an issue where legacy Core MIDI API may have been used by default
  • Exposed Core MIDI port ref properties as public
  • MIDI.Event description string channel and group are now formatted as hexadecimal
  • MIDIEventLogger example project improvements
  • Minor bugfixes
  • Unit tests updated and expanded
  • Minor API changes

0.3.0

11 Jan 22:12
b0943bf
Compare
Choose a tag to compare

Major Milestone Release

  • Essential MIDI 2.0 / Universal MIDI Packet support
  • MIDIKit is now pure Swift

Changes and Additions

  • MIDI.IO.Manager now uses the new Core MIDI API and MIDI 2.0 Protocol by default if available
  • MDI 2.0: Multi-part SysEx7 and SysEx8 UMP messages can now be sent and received
  • SysEx refactors and API changes
    • .sysEx has now become .sysEx7
    • .universalSysEx has now become .universalSysEx7
    • .sysEx8 and .universalSysEx8 have been added
  • ReceiveHandlers now do not call handlers if parsed events are empty
  • ReceiveHandlers: EventsLogging and RawDataLogging now ignore empty parsed events
  • Unit tests updated

0.2.9

10 Jan 10:15
bf50821
Compare
Choose a tag to compare

What's New

  • Most MIDI 2.0 UMP events are functional, with the notable exception of SysEx messages which require further work.
  • Updated MIDIEventLogger example project
  • Inline documentation improvements

Syntax

  • MIDI.IO.Manager: coreMIDIClientRef is now public
  • Device, Entity, *Endpoint, AnyMIDIIOObject: coreMIDIObjectRef is now public