Swiftpack.co - orchetect/MIDIKit as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by orchetect.
orchetect/MIDIKit 0.2.7
🎹 An elegant and modern Swift CoreMIDI wrapper.
⭐️ 11
🕓 Yesterday
iOS macOS watchOS tvOS
.package(url: "https://github.com/orchetect/MIDIKit.git", from: "0.2.7")


CI Build Status Platforms - macOS 10.12+ | iOS 10+ | tvOS (beta) | watchOS (beta) License: MIT

An elegant and modern Swift CoreMIDI wrapper with:

  • strongly-typed protocol-agnostic MIDI events
    • (ie: a single 'note on' event & its value types are homogenous between MIDI 1.0 and 2.0)
  • event filters
    • easily filter or drop events by message type, channel, CC number, UMP group, and more
  • seamless unified API, transparently adopting newer Core MIDI API and MIDI 2.0 on platforms that support them

MIDIKit Extensions

Abstractions are built as optional extensions in their own repos.

Getting Started

  1. Add MIDIKit as a dependency using Swift Package Manager.

    • In an app project or framework, in Xcode:

      • Select the menu: File → Swift Packages → Add Package Dependency...
      • Enter this URL: https://github.com/orchetect/MIDIKit
    • In a Swift Package, add it to the Package.swift dependencies:

      .package(url: "https://github.com/orchetect/MIDIKit", from: "0.2.0")
  2. Import the library:

import MIDIKit
  1. See Examples folder and Docs folder for usage.

Known Issues

  • MIDI 2.0 implementation on supported OS versions is still in active development and will be available in a future MIDIKit update. For the time being, MIDIKit will internally default to MIDI 1.0 which is fully operational.

  • Back-porting a limited subset of MIDI 2.0 features to older platforms (macOS Catalina or older, and iOS 13 or older) is planned, but not yet supported.

  • Beta support for tvOS 14+ and watchOS 7+ in development and is planned to be added in future.


See Docs folder.

Also see project Examples folder.


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


Licensed under the MIT license. See LICENSE for details.


Contributions are welcome. Discussion in Issues is encouraged prior to new features or modifications.


Stars: 11
Last commit: Yesterday
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

  • Added MIDI.NoteRange and MIDI.Note .pianoKey property
  • MIDI.Note.Name improvements

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics