A modular Swift CoreMIDI wrapper with type-safe abstraction for MIDI events, MTC, MMC, HUI, and SMF (Standard MIDI Files).
Module | Description | Completion | Docs | Tests |
---|---|---|---|---|
MIDIKitIO |
CoreMIDI I/O ports & connections | ⚪️ | 🟠 | |
MIDIKitSync |
||||
─ MTC.Receiver |
MIDI Timecode Receiver abstraction | 🟢 | 🟢 |
Module | Description | Completion | Docs | Tests |
---|---|---|---|---|
MIDIKitEvents |
MIDI events encoding/decoding | ⚪️ | ⚪️ | |
MIDIKitHUI |
HUI protocol abstraction | ⚪️ | ⚪️ | |
MIDIKitSMF |
Standard MIDI File read/write | ⚪️ | 🟠 | |
MIDIKitSync |
||||
─ MTC.Generator |
MIDI Timecode Generator abstraction | 🟢 | ⚪️ | |
─ MMC |
MIDI Machine Control abstraction | ⚪️ | ⚪️ |
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.
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 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 |
link |
Stars: 5 |
Last commit: 3 days ago |
MIDIPacketNext
MIDIPacketData
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco