<!--
{
  "documentType" : "article",
  "framework" : "CoreMIDI",
  "identifier" : "/documentation/CoreMIDI/core-midi-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Core MIDI Functions"
}
-->

# Core MIDI Functions

## Topics

### Functions

[`func MIDI1UPChannelPressure(UInt8, UInt8, UInt8) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDI1UPChannelPressure(_:_:_:))

[`func MIDI1UPPolyPressure(UInt8, UInt8, UInt8, UInt8) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDI1UPPolyPressure(_:_:_:_:))

[`func MIDI1UPProgramChange(UInt8, UInt8, UInt8) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDI1UPProgramChange(_:_:_:))

[`func MIDI1UPSysEx(UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8) -> MIDIMessage_64`](/documentation/CoreMIDI/MIDI1UPSysEx(_:_:_:_:_:_:_:_:_:))

[`func MIDI1UPSysExArray(UInt8, UInt8, UnsafePointer<UInt8>!, UnsafePointer<UInt8>!) -> MIDIMessage_64`](/documentation/CoreMIDI/MIDI1UPSysExArray(_:_:_:_:))

[`func MIDI2EndOfClipMessage() -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndOfClipMessage())

[`func MIDI2EndpointDeviceIdentityNotificationMessage(MIDIUInteger7, MIDIUInteger7, MIDIUInteger7, MIDIUInteger14, MIDIUInteger14, MIDIUInteger28) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndpointDeviceIdentityNotificationMessage(_:_:_:_:_:_:))

[`func MIDI2EndpointDiscoveryMessage(UInt8, UInt8, Bool, Bool, Bool, Bool, Bool) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndpointDiscoveryMessage(_:_:_:_:_:_:_:))

[`func MIDI2EndpointInfoNotificationMessage(UInt8, UInt8, Bool, UInt8, Bool, Bool, Bool, Bool) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndpointInfoNotificationMessage(_:_:_:_:_:_:_:_:))

[`func MIDI2EndpointNameNotificationMessage(UMPStreamMessageFormat, UnsafePointer<CChar>!, Int) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndpointNameNotificationMessage(_:_:_:))

[`func MIDI2EndpointProductInstanceIDNotificationMessage(UMPStreamMessageFormat, UnsafePointer<CChar>!, Int) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2EndpointProductInstanceIDNotificationMessage(_:_:_:))

[`func MIDI2FlexDataMessage(MIDIUInteger4, MIDIUInteger2, MIDIUInteger2, MIDIUInteger4, UInt8, UInt8, UInt32, UInt32, UInt32) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2FlexDataMessage(_:_:_:_:_:_:_:_:_:))

[`func MIDI2FunctionBlockDiscoveryMessage(UInt8, Bool, Bool) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2FunctionBlockDiscoveryMessage(_:_:_:))

[`func MIDI2FunctionBlockInfoNotificationMessage(Bool, MIDIUInteger7, MIDIUMPFunctionBlockUIHint, MIDIUMPFunctionBlockMIDI1Info, MIDIUMPFunctionBlockDirection, UInt8, UInt8, UInt8, UInt8) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2FunctionBlockInfoNotificationMessage(_:_:_:_:_:_:_:_:_:))

[`func MIDI2FunctionBlockNameNotificationMessage(UMPStreamMessageFormat, UInt8, UnsafePointer<CChar>!, Int) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2FunctionBlockNameNotificationMessage(_:_:_:_:))

[`func MIDI2StartOfClipMessage() -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2StartOfClipMessage())

[`func MIDI2StreamConfigurationNotificationMessage(UInt8, Bool, Bool) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2StreamConfigurationNotificationMessage(_:_:_:))

[`func MIDI2StreamConfigurationRequestMessage(UInt8, Bool, Bool) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2StreamConfigurationRequestMessage(_:_:_:))

[`func MIDI2StreamMessage(UMPStreamMessageFormat, UMPStreamMessageStatus, UInt16, UInt32, UInt32, UInt32) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2StreamMessage(_:_:_:_:_:_:))

[`func MIDI2StreamMessageFromData(UMPStreamMessageFormat, UMPStreamMessageStatus, UnsafePointer<UInt8>!, Int) -> MIDIMessage_128`](/documentation/CoreMIDI/MIDI2StreamMessageFromData(_:_:_:_:))

[`func MIDIDeltaClockstampTicksPerQuarterNoteMessage(UInt16) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDIDeltaClockstampTicksPerQuarterNoteMessage(_:))

[`func MIDIDeviceAddEntity(MIDIDeviceRef, CFString, Bool, Int, Int, UnsafeMutablePointer<MIDIEntityRef>) -> OSStatus`](/documentation/CoreMIDI/MIDIDeviceAddEntity(_:_:_:_:_:_:))

Specifies one of the entities that make up a device.

[`func MIDIEventListForEachEvent(UnsafePointer<MIDIEventList>!, MIDIEventVisitor!, UnsafeMutableRawPointer!)`](/documentation/CoreMIDI/MIDIEventListForEachEvent(_:_:_:))

[`extern OSStatus MIDIGetSerialPortDrivers(CFArrayRef*outDriverNames);`](/documentation/CoreMIDI/MIDIGetSerialPortDrivers)

Returns a list of installed MIDI drivers for serial port MIDI devices.

[`extern OSStatus MIDIGetSerialPortOwner(CFStringRef portName, CFStringRef*outDriverName);`](/documentation/CoreMIDI/MIDIGetSerialPortOwner)

Returns the MIDI driver that owns a serial port.

[`func MIDIJitterReductionClockMessage(UInt16) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDIJitterReductionClockMessage(_:))

[`func MIDIJitterReductionTimestampMessage(UInt16) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDIJitterReductionTimestampMessage(_:))

[`func MIDINoOpMessage() -> MIDIMessage_32`](/documentation/CoreMIDI/MIDINoOpMessage())

[`extern OSStatus MIDISetSerialPortOwner(CFStringRef portName, CFStringRef driverName);`](/documentation/CoreMIDI/MIDISetSerialPortOwner)

Specifies the MIDI driver that owns a serial port.

[`extern OSStatus MIDISetupCreate(MIDISetupRef *outSetup);`](/documentation/CoreMIDI/MIDISetupCreate)

Queries drivers to discover what hardware is available.

[`extern OSStatus MIDISetupDispose(MIDISetupRef setup);`](/documentation/CoreMIDI/MIDISetupDispose)

Disposes the specified setup object.

[`extern OSStatus MIDISetupFromData(CFDataRef data, MIDISetupRef *outSetup);`](/documentation/CoreMIDI/MIDISetupFromData)

Creates a MIDISetup object from an XML stream.

[`extern OSStatus MIDISetupGetCurrent(MIDISetupRef *outSetup);`](/documentation/CoreMIDI/MIDISetupGetCurrent)

Returns the system’s current MIDISetup.

[`extern OSStatus MIDISetupInstall(MIDISetupRef setup);`](/documentation/CoreMIDI/MIDISetupInstall)

Installs a MIDISetup as the system’s current state.

[`extern OSStatus MIDISetupToData(MIDISetupRef setup, CFDataRef*outData);`](/documentation/CoreMIDI/MIDISetupToData)

Creates an XML representation of a MIDISetup object.

[`func MIDITicksSinceLastEventMessage(UInt32) -> MIDIMessage_32`](/documentation/CoreMIDI/MIDITicksSinceLastEventMessage(_:))



---

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)