• Stars
    star
    219
  • Rank 181,133 (Top 4 %)
  • Language
    Swift
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎹 Modern multi-platform Swift CoreMIDI wrapper with MIDI 2.0 support.

MIDIKit

MIDIKit

CI Build Status Xcode 14-15 License: MIT

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

  • Modular, user-friendly I/O
  • Automatic MIDI endpoint connection management and identity 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 it
  • Supports Swift Playgrounds on iPad and macOS
  • Full documentation available in Xcode Documentation browser, including helpful guides and getting started information

Abstractions

Additional abstractions for MIDI extensions can be found in MIDIKit:

  • Reading/writing Standard MIDI Files (SMF)
  • Control Surface protocols (HUI, etc.)
  • Synchronization protocols (MTC, etc.)

Getting Started

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.

Documentation

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.

System Compatibility

  • 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.

Author

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

License

Licensed under the MIT license. See LICENSE for details.

Sponsoring

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.

Community & Support

Please do not email maintainers for technical support. Several options are available for questions and feature ideas:

  • Questions and feature ideas can be posted to Discussions.
  • If an issue is a verifiable bug with reproducible steps it may be posted in Issues.
  • The AudioKit discord #midikit channel is also a place to find help if Discussions and documentation don't contain an answer. (Invitation is necessary)

Contributions

Contributions are welcome. Posting in Discussions first prior to new submitting PRs for features or modifications is encouraged.

More Repositories

1

MenuBarExtraAccess

Show/hide SwiftUI MenuBarExtra menu using Bindings
Swift
123
star
2

SettingsAccess

Better SwiftUI Settings Scene Access on macOS
Swift
112
star
3

MacControlCenterUI

SwiftUI menu builder DSL & controls that mimic macOS Control Center.
Swift
97
star
4

OSCKit

Open Sound Control (OSC) library written in Swift.
Swift
93
star
5

TimecodeKit

The definitive SMPTE timecode library for Swift.
Swift
85
star
6

SwiftRadix

Easily convert integers to binary/hex/octal strings and back again with clean functional syntax.
Swift
54
star
7

PListKit

Swift library for easily reading/writing plist (Property List) files.
Swift
31
star
8

DAWFileKit

A Swift library for reading and writing common import/export file formats between popular DAW applications.
Swift
25
star
9

CrappKit

Pseudo-declarative AppKit UI
Swift
7
star
10

PDFGadget

Batch PDF operations for Swift
Swift
6
star
11

OTCore

Useful extensions on Swift standard library types.
Swift
6
star
12

OTAtomics

Multi-platform Swift thread-safe atomics library
Swift
5
star
13

MIDIKitSync

🎹 MIDIKit extension for sync (MTC, etc.)
Swift
5
star
14

SwiftASCII

Type-safe ASCIIString and ASCIICharacter types for Swift. (ASCII string, character)
Swift
4
star
15

TextFileKit

Read & write delimited text file formats (incl. CSV and TSV).
Swift
3
star
16

MIDIKitControlSurfaces

🎹 MIDIKit extension for control surfaces (HUI, etc.)
Swift
3
star
17

MIDIKitSMF

🎹 MIDIKit extension for SMF (Standard MIDI File)
Swift
3
star
18

OTOperations

Useful Swift NSOperation and NSOperationQueue subclasses
Swift
2
star
19

OTTableView

Pseudo-declarative NSTableView wrapper for SwiftUI.
Swift
1
star
20

XCTestUtils

Useful XCTest extensions for Swift
Swift
1
star
21

orchetect

1
star