<!--
{
  "documentType" : "article",
  "framework" : "CoreMIDI",
  "identifier" : "/documentation/CoreMIDI/midi-system-setup",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "MIDI System Setup"
}
-->

# MIDI System Setup

Configure the global MIDI system.

## Discussion

The primary clients of this API are apps that present a user interface to configure the global MIDI system, and MIDI drivers that dynamically modify the system state as users connect and disconnect hardware.

## Topics

### Managing Devices

[`MIDISetupAddDevice`](/documentation/CoreMIDI/MIDISetupAddDevice(_:))

Adds a driver-owned MIDI device to the current MIDI setup.

[`MIDISetupRemoveDevice`](/documentation/CoreMIDI/MIDISetupRemoveDevice(_:))

Removes a driver-owned MIDI device from the current MIDI setup.

### Managing External Devices

[`MIDIExternalDeviceCreate`](/documentation/CoreMIDI/MIDIExternalDeviceCreate(_:_:_:_:))

Creates an external MIDI device.

[`MIDISetupAddExternalDevice`](/documentation/CoreMIDI/MIDISetupAddExternalDevice(_:))

Adds an external MIDI device to the current MIDI setup.

[`MIDISetupRemoveExternalDevice`](/documentation/CoreMIDI/MIDISetupRemoveExternalDevice(_:))

Removes an external MIDI device from the current MIDI setup.

### Managing Entities

[`MIDIDeviceNewEntity`](/documentation/CoreMIDI/MIDIDeviceNewEntity(_:_:_:_:_:_:_:))

Adds a new entity to a device.

[`MIDIDeviceRemoveEntity`](/documentation/CoreMIDI/MIDIDeviceRemoveEntity(_:_:))

Removes an entity from a device.

[`MIDIEntityAddOrRemoveEndpoints`](/documentation/CoreMIDI/MIDIEntityAddOrRemoveEndpoints(_:_:_:))

Adds or removes an entity’s endpoints.

### Deprecated

[Deprecated Symbols](/documentation/CoreMIDI/deprecated-symbols)

Review unsupported symbols and their replacements.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)