🎹 Modern multi-platform Swift CoreMIDI wrapper with MIDI 2.0 support.

What's New


  • MIDIFile: gained Hashable conformance (#174)
  • Updated PassiveDataReader to fix a potential crash when parsing MIDIFile (#175)



CI Build Status Platforms - macOS 10.12-13.0 | iOS 10-16 Swift 5.5-5.8 Xcode 14 License: MIT

An elegant and modern CoreMIDI wrapper in pure Swift supporting MIDI 1.0 and MIDI 2.0.

  • Modular, user-friendly I/O
  • Automatic MIDI endpoint connection management and identity persistence
  • Strongly-typed MIDI events that seamlessly interoperate between MIDI 1.0 and MIDI 2.0
  • Automatically uses appropriate Core MIDI API and defaults to MIDI 2.0 on platforms that support it
  • Supports Swift Playgrounds on iPad and macOS
  • Full documentation available in Xcode Documentation browser, including helpful guides and getting started information


Additional abstractions for MIDI extensions can be found in MIDIKit:

  • Reading/writing Standard MIDI Files (SMF)
  • Control Surface protocols (HUI, etc.)
  • Synchronization protocols (MTC, etc.)

Getting Started

The library is available as a Swift Package Manager (SPM) package.

Use the URL https://github.com/orchetect/MIDIKit when adding the library to a project or Swift package.

See the getting started guide for a detailed walkthrough of how to get the most out of MIDIKit.


See the online documentation or view it in Xcode's documentation browser by selecting the Product → Build Documentation menu.

This includes a getting started guide, links to examples, and troubleshooting tips.

System Compatibility

  • Xcode 14.0 / macOS 12.0 are minimum requirements to compile

  • Once compiled, MIDIKit supports macOS 10.12+ and iOS 10.0+.

    tvOS and watchOS are not supported (as there is no Core MIDI implementation) but MIDIKit will build successfully on those platforms in the event it is included as a dependency in multi-platform projects.


Coded by a bunch of 🐹 hamsters in a trenchcoat that calls itself @orchetect.


Licensed under the MIT license. See LICENSE for details.


If you enjoy using MIDIKit and want to contribute to open-source financially, GitHub sponsorship is much appreciated. Feedback and code contributions are also welcome.


Questions can be posted to Discussions. If an issue is a verifiable bug with reproducible steps it may be posted in Issues.

The AudioKit discord #midikit channel is also a place to find help if Discussions and documentation don't contain an answer.


Contributions are welcome. Posting in Discussions first prior to new submitting PRs for features or modifications is encouraged.


  • Swift Tools 5.5.0
View More Packages from this Author


Last updated: Sat Apr 01 2023 06:19:10 GMT-0500 (GMT-05:00)