<!--
{
  "documentType" : "article",
  "framework" : "CoreMIDI",
  "identifier" : "/documentation/CoreMIDI/midi-object-properties",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "MIDI Object Properties"
}
-->

# MIDI Object Properties

Configure the properties of MIDI objects.

## Topics

### Identification

[`kMIDIPropertyName`](/documentation/CoreMIDI/kMIDIPropertyName)

A name for a device, entity, or endpoint.

[`kMIDIPropertyModel`](/documentation/CoreMIDI/kMIDIPropertyModel)

The model name of a device or endpoint.

[`kMIDIPropertyManufacturer`](/documentation/CoreMIDI/kMIDIPropertyManufacturer)

The manufacturer name of a device or endpoint.

[`kMIDIPropertyUniqueID`](/documentation/CoreMIDI/kMIDIPropertyUniqueID)

The unique identifier of a device, entity, or, endpoint.

[`kMIDIPropertyDeviceID`](/documentation/CoreMIDI/kMIDIPropertyDeviceID)

The user-visible System Exclusive (SysEx) identifier of a device or entity.

### Capabilities

[`kMIDIPropertySupportsMMC`](/documentation/CoreMIDI/kMIDIPropertySupportsMMC)

A Boolean value that indicates whether the device or entity implements the MIDI Machine Control portion of the MIDI specification.

[`kMIDIPropertySupportsGeneralMIDI`](/documentation/CoreMIDI/kMIDIPropertySupportsGeneralMIDI)

A Boolean value that indicates whether the device or entity implements the General MIDI specification.

[`kMIDIPropertySupportsShowControl`](/documentation/CoreMIDI/kMIDIPropertySupportsShowControl)

A Boolean value that indicates whether the device implements the MIDI Show Control specification.

### Configuration

[`kMIDIPropertyNameConfigurationDictionary`](/documentation/CoreMIDI/kMIDIPropertyNameConfigurationDictionary)

The device’s current patch, note, and control name values in MIDINameDocument XML format.

[`kMIDIPropertyMaxSysExSpeed`](/documentation/CoreMIDI/kMIDIPropertyMaxSysExSpeed)

The maximum rate, in bytes per second, at which the system may reliably send System Exclusive (SysEx) messages to this object.

[`kMIDIPropertyDriverDeviceEditorApp`](/documentation/CoreMIDI/kMIDIPropertyDriverDeviceEditorApp)

The full path to an app on the system that configures driver-owned devices.

[`kMIDIPropertyNameConfiguration`](/documentation/CoreMIDI/kMIDIPropertyNameConfiguration)

An XML representation of the device’s current patch, note, and control name values.

### Presentation

[`kMIDIPropertyImage`](/documentation/CoreMIDI/kMIDIPropertyImage)

The full path to a device icon on the system.

[`kMIDIPropertyDisplayName`](/documentation/CoreMIDI/kMIDIPropertyDisplayName)

The user-visible name for an endpoint that combines the device and endpoint names.

### Audio

[`kMIDIPropertyPanDisruptsStereo`](/documentation/CoreMIDI/kMIDIPropertyPanDisruptsStereo)

A Boolean value that indicates whether the MIDI pan messages sent to the device or entity cause undesirable effects when playing stereo sounds.

### Protocols

[`kMIDIPropertyProtocolID`](/documentation/CoreMIDI/kMIDIPropertyProtocolID)

The native protocol in which the endpoint communicates.

### Timing

[`kMIDIPropertyTransmitsMTC`](/documentation/CoreMIDI/kMIDIPropertyTransmitsMTC)

A Boolean value that indicates whether the device or entity transmits MIDI Time Code messages.

[`kMIDIPropertyReceivesMTC`](/documentation/CoreMIDI/kMIDIPropertyReceivesMTC)

A Boolean value that indicates whether the device or entity responds to MIDI Time Code messages.

[`kMIDIPropertyTransmitsClock`](/documentation/CoreMIDI/kMIDIPropertyTransmitsClock)

A Boolean value that indicates whether the device or entity transmits MIDI beat clock messages.

[`kMIDIPropertyReceivesClock`](/documentation/CoreMIDI/kMIDIPropertyReceivesClock)

A Boolean value that indicates whether the device or entity responds to MIDI beat clock messages.

[`kMIDIPropertyAdvanceScheduleTimeMuSec`](/documentation/CoreMIDI/kMIDIPropertyAdvanceScheduleTimeMuSec)

The recommended number of microseconds in advance that clients should schedule output.

### Roles

[`kMIDIPropertyIsMixer`](/documentation/CoreMIDI/kMIDIPropertyIsMixer)

A Boolean value that indicates whether the device or entity mixes external audio signals.

[`kMIDIPropertyIsSampler`](/documentation/CoreMIDI/kMIDIPropertyIsSampler)

A Boolean value that indicates whether the device or entity plays audio samples in response to MIDI note messages.

[`kMIDIPropertyIsEffectUnit`](/documentation/CoreMIDI/kMIDIPropertyIsEffectUnit)

A Boolean value that indicates whether the device or entity primarily acts as a MIDI-controlled audio effect.

[`kMIDIPropertyIsDrumMachine`](/documentation/CoreMIDI/kMIDIPropertyIsDrumMachine)

A Boolean value that indicates whether the device or entity’s samples aren’t transposable, as with a drum kit.

### Status

[`kMIDIPropertyOffline`](/documentation/CoreMIDI/kMIDIPropertyOffline)

A Boolean value that indicates whether the object is offline.

[`kMIDIPropertyPrivate`](/documentation/CoreMIDI/kMIDIPropertyPrivate)

A Boolean value that indicates whether the system hides an endpoint from other clients.

### Drivers

[`kMIDIPropertyDriverOwner`](/documentation/CoreMIDI/kMIDIPropertyDriverOwner)

The name of the driver that owns a device, entity, or endpoint.

[`kMIDIPropertyDriverVersion`](/documentation/CoreMIDI/kMIDIPropertyDriverVersion)

The version of the driver that owns a device, entity, or endpoint.

### Connections

[`kMIDIPropertyCanRoute`](/documentation/CoreMIDI/kMIDIPropertyCanRoute)

A Boolean value that indicates whether the device or entity can route messages to or from external MIDI devices.

[`kMIDIPropertyIsBroadcast`](/documentation/CoreMIDI/kMIDIPropertyIsBroadcast)

A Boolean value that indicates whether the endpoint broadcasts messages to all of the other endpoints in the device.

[`kMIDIPropertyConnectionUniqueID`](/documentation/CoreMIDI/kMIDIPropertyConnectionUniqueID)

The unique identifier of an external device attached to this connection.

[`kMIDIPropertyIsEmbeddedEntity`](/documentation/CoreMIDI/kMIDIPropertyIsEmbeddedEntity)

A Boolean value that indicates whether this entity or endpoint has external MIDI connections.

[`kMIDIPropertySingleRealtimeEntity`](/documentation/CoreMIDI/kMIDIPropertySingleRealtimeEntity)

The 0-based index of the entity on which incoming real-time messages from the device appear to have originated.

### Channels

[`kMIDIPropertyReceiveChannels`](/documentation/CoreMIDI/kMIDIPropertyReceiveChannels)

The bitmap of channels on which the object receives messages.

[`kMIDIPropertyTransmitChannels`](/documentation/CoreMIDI/kMIDIPropertyTransmitChannels)

The bitmap of channels on which the object transmits messages.

[`kMIDIPropertyMaxReceiveChannels`](/documentation/CoreMIDI/kMIDIPropertyMaxReceiveChannels)

The maximum number of MIDI channels on which a device may simultaneously receive channel messages.

[`kMIDIPropertyMaxTransmitChannels`](/documentation/CoreMIDI/kMIDIPropertyMaxTransmitChannels)

The maximum number of MIDI channels on which a device may simultaneously transmit channel messages.

### Banks

[`kMIDIPropertyReceivesBankSelectLSB`](/documentation/CoreMIDI/kMIDIPropertyReceivesBankSelectLSB)

A Boolean value that indicates whether the device or entity responds to MIDI bank select LSB messages.

[`kMIDIPropertyReceivesBankSelectMSB`](/documentation/CoreMIDI/kMIDIPropertyReceivesBankSelectMSB)

A Boolean value that indicates whether the device or entity responds to MIDI bank select MSB messages.

[`kMIDIPropertyTransmitsBankSelectLSB`](/documentation/CoreMIDI/kMIDIPropertyTransmitsBankSelectLSB)

A Boolean value that indicates whether the device or entity transmits MIDI bank select LSB messages.

[`kMIDIPropertyTransmitsBankSelectMSB`](/documentation/CoreMIDI/kMIDIPropertyTransmitsBankSelectMSB)

A Boolean value that indicates whether the device or entity transmits MIDI bank select MSB messages.

### Notes

[`kMIDIPropertyReceivesNotes`](/documentation/CoreMIDI/kMIDIPropertyReceivesNotes)

A Boolean value that indicates whether the device or entity responds to MIDI Note On messages.

[`kMIDIPropertyTransmitsNotes`](/documentation/CoreMIDI/kMIDIPropertyTransmitsNotes)

A Boolean value that indicates whether the device or entity transmits MIDI note messages.

### Program Changes

[`kMIDIPropertyReceivesProgramChanges`](/documentation/CoreMIDI/kMIDIPropertyReceivesProgramChanges)

A Boolean value that indicates whether the device or entity responds to MIDI Program Change messages.

[`kMIDIPropertyTransmitsProgramChanges`](/documentation/CoreMIDI/kMIDIPropertyTransmitsProgramChanges)

A Boolean value that indicates whether the device or entity transmits MIDI Program Change messages.

### Property Accessors

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

Returns all properties of an object.

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

Removes an object’s property.

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

Gets an object’s string-type property.

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

Sets an object’s string-type property.

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

Gets an object’s integer-type property.

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

Sets an object’s integer-type property.

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

Gets an object’s data-type property.

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

Sets an object’s data-type property.

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

Gets an object’s dictionary-type property.

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

Sets an object’s dictionary-type property.

### Notifications

[`MIDIObjectAddRemoveNotification`](/documentation/CoreMIDI/MIDIObjectAddRemoveNotification)

A message that describes the addition or removal of an object.

[`MIDIObjectPropertyChangeNotification`](/documentation/CoreMIDI/MIDIObjectPropertyChangeNotification)

A message that describes the change to an object property.



---

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)