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.4.8
🎹 Modern multi-platform Swift CoreMIDI wrapper with MIDI 2.0 support.
⭐️ 28
🕓 5 weeks ago
iOS macOS
.package(url: "https://github.com/orchetect/MIDIKit.git", from: "0.4.8")


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

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

  • Modular, user-friendly I/O
  • Automatic MIDI endpoint connection management and unique ID 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 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.4.0")
  2. Import the library:

import MIDIKit
  1. Read the Getting Started guide. Additional documentation is available in the Docs folder.
  2. See Examples folder for example projects.


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: 28
Last commit: 5 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

5 weeks ago


  • 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

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