An elegant and modern CoreMIDI wrapper in pure Swift supporting MIDI 1.0 and MIDI 2.0.
Additional abstractions for MIDI extensions can be found in MIDIKit:
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.
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.
Please do not email maintainers for technical support. Several options are available for questions and feature ideas:
#midikit
channel is also a place to find help if Discussions and documentation don't contain an answer. (Invitation is necessary)Contributions are welcome. Posting in Discussions first prior to new submitting PRs for features or modifications is encouraged.
link |
Stars: 188 |
Last commit: 11 weeks ago |
MIDIReceiverOptions
: Added .bundleRPNAndNRPNDataEntryLSB
receiver option (#198)MIDIReceiver
: eventsWithMetadata
receiver has been renamed to events
and inherits its events, timeStamp, source
closure parametersMIDIReceiver
: object(_:held:options:)
is now replaced by strong(_:options:)
or weak(_:options:)
and, as such, no longer carries a held
propertyMIDIReceiveHandler
classMIDIReceiveHandlerProtocol
to MIDIReceiverProtocol
and made it publicMIDIEvent.pressure
: Debug description now includes both MIDI 1.0 & MIDI 2.0 value representation, consistent with other event descriptionsMIDIReceiver
boilerplateSwiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics