Swiftpack.co -  Package - orchetect/MIDIKit
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
orchetect/MIDIKit
A modular Swift CoreMIDI wrapper with type-safe abstraction for MIDI events, MTC, MMC, HUI, and SMF (Standard MIDI Files).
.package(url: "https://github.com/orchetect/MIDIKit.git", from: "0.1.3")

MIDIKit

Swift 5.3 compatible Swift Package Manager (SPM) compatible Platforms - macOS 10.12 | iOS 10 License: MIT

A modular Swift CoreMIDI wrapper with type-safe abstraction for MIDI events, MTC, MMC, HUI, and SMF (Standard MIDI Files).

Available Modules

Module Description Completion Docs Tests
MIDIKitIO CoreMIDI I/O ports & connections Progress ⚪️ 🟠
MIDIKitSync
MTC.Receiver MIDI Timecode Receiver abstraction Progress 🟢 🟢

Modules in Development

Module Description Completion Docs Tests
MIDIKitEvents MIDI events encoding/decoding Progress ⚪️ ⚪️
MIDIKitHUI HUI protocol abstraction Progress ⚪️ ⚪️
MIDIKitSMF Standard MIDI File read/write Progress ⚪️ 🟠
MIDIKitSync
MTC.Generator MIDI Timecode Generator abstraction Progress 🟢 ⚪️
MMC MIDI Machine Control abstraction Progress ⚪️ ⚪️

Getting Started

Import all modules at once:

import MIDIKit
//     ├→ imports: MIDIKitIO
//     ├→ imports: MIDIKitEvents
//     └→ etc. ...

Or import only specific submodules:

import MIDIKitIO
import MIDIKitEvents

For documentation on how each module works, see individual module README files.

Roadmap

  • ☐ Possible MIDI 2.0 support in future
  • ☐ Bluetooth & network MIDI connection support

Author

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

License

Licensed under the MIT license. See LICENSE for details.

Contributions

Contributions are welcome. Discussion on bug fixes or new features is encouraged before creating pull requests.

Individual commits should have commit messages prefixed with the module they are concerned with, as follows:

Commits with changes within Commit message prefix
/ "Common: "
/Sources/MIDIKit "Common: "
/Sources/MIDIKitCommon "Common: "
/Sources/MIDIKitEvents "Events: "
/Sources/MIDIKitIO "IO: "
/Sources/MIDIKitSync "Sync: "
/Sources/MIDIKitTestsCommon "Common: "
/Tests/<subfolder> use corresponding prefix as seen above

GitHub

link
Stars: 5
Last commit: 3 days ago

Release Notes

0.1.3
3 days ago
  • Fixed crash when calling MIDIPacketNext
  • Refactored MIDIPacketData

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