---
title: MIDIDriverKit
framework: MIDIDriverKit
role: collection
role_heading: Framework
platforms: [driverkit 24.0+]
path: mididriverkit
---

# MIDIDriverKit

Develop drivers for MIDI devices.

## Overview

Overview Use the MIDIDriverKit framework to implement a MIDI driver extension that communicates with Core MIDI. The framework handles all user-client communication between your driver extension and the Core MIDI server so you don’t need to implement a MIDI driver plug-in. You can also leverage other transport-based driver extension frameworks, such as USBDriverKit, in your implementation.

## Topics

### Essentials

- [Creating a MIDI device driver](mididriverkit/creating-a-midi-device-driver.md)
- [com.apple.developer.driverkit.family.midi](bundleresources/entitlements/com.apple.developer.driverkit.family.midi.md)

### Classes

- [IOUserMIDIDestination](mididriverkit/iousermididestination.md)
- [IOUserMIDIDevice](mididriverkit/iousermididevice.md)
- [IOUserMIDIDriver](mididriverkit/iousermididriver.md)
- [IOUserMIDIEndpoint](mididriverkit/iousermidiendpoint.md)
- [IOUserMIDIEntity](mididriverkit/iousermidientity.md)
- [IOUserMIDIObject](mididriverkit/iousermidiobject.md)
- [IOUserMIDISource](mididriverkit/iousermidisource.md)

### Reference

- [MIDIDriverKit Constants](mididriverkit/mididriverkit-constants.md)
- [MIDIDriverKit Data Types](mididriverkit/mididriverkit-data-types.md)

### Namespaces

- [MIDIDriverKit](mididriverkit/mididriverkit.md)

### Macros

- [kIOUserMIDIDriverUserClientType](mididriverkit/kiousermididriveruserclienttype.md)
