---
title: Core MIDI
framework: Core MIDI
role: collection
role_heading: Framework
platforms: [iOS 4.2+, iPadOS 4.2+, Mac Catalyst 13.0+, macOS 10.0+, tvOS 15.0+, visionOS 1.0+, watchOS 8.0+]
path: coremidi
---

# Core MIDI

Communicate with MIDI devices such as hardware keyboards and synthesizers.

## Overview

Overview The Core MIDI framework provides APIs to communicate with MIDI (Musical Instrument Digital Interface) devices, including hardware keyboards and synthesizers. Connect from an iOS device using the dock connector or a network. For more information about using the dock connector, see the MFi Program.

## Topics

### Services

- [MIDI Services](coremidi/midi-services.md)
- [MIDI System Setup](coremidi/midi-system-setup.md)
- [MIDI Bluetooth](coremidi/midi-bluetooth.md)
- [MIDI Messages](coremidi/midi-messages.md)
- [MIDI Thru Connection](coremidi/midi-thru-connection.md)
- [MIDI Networking](coremidi/midi-networking.md)
- [MIDI Drivers](coremidi/midi-drivers.md)
- [MIDI Capability Inquiry](coremidi/midi-capability-inquiry.md)

### Reference

- [Core MIDI Structures](coremidi/core-midi-structures.md)
- [Core MIDI Enumerations](coremidi/core-midi-enumerations.md)
- [Core MIDI Constants](coremidi/core-midi-constants.md)
- [Core MIDI Functions](coremidi/core-midi-functions.md)
- [Core MIDI Data Types](coremidi/core-midi-data-types.md)
- [Core MIDI Macros](coremidi/coremidi-macros.md)

### Articles

- [Deprecated Symbols](coremidi/midi_system_setup-deprecated-symbols.md)

### Classes

- [MIDI2DeviceInfo](coremidi/midi2deviceinfo.md)
- [MIDICIDevice](coremidi/midicidevice.md)
- [MIDICIDeviceManager](coremidi/midicidevicemanager.md)
- [MIDICIDiscoveredNode](coremidi/midicidiscoverednode.md)
- [MIDIUMPCIProfile](coremidi/midiumpciprofile.md)
- [MIDIUMPEndpoint](coremidi/midiumpendpoint.md)
- [MIDIUMPEndpointManager](coremidi/midiumpendpointmanager.md)
- [MIDIUMPFunctionBlock](coremidi/midiumpfunctionblock.md)
- [MIDIUMPMutableEndpoint](coremidi/midiumpmutableendpoint.md)
- [MIDIUMPMutableFunctionBlock](coremidi/midiumpmutablefunctionblock.md)

### Variables

- [kMIDINoteAttributeManufacturerSpecific](coremidi/kmidinoteattributemanufacturerspecific.md)
- [kMIDINoteAttributeNone](coremidi/kmidinoteattributenone.md)
- [kMIDINoteAttributePitch](coremidi/kmidinoteattributepitch.md)
- [kMIDINoteAttributeProfileSpecific](coremidi/kmidinoteattributeprofilespecific.md)
