<!--
{
  "documentType" : "article",
  "framework" : "CoreMIDI",
  "identifier" : "/documentation/CoreMIDI/midi-thru-connection",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "MIDI Thru Connection"
}
-->

# MIDI Thru Connection

Create play-through connections between sources and destinations.

## Discussion

Use play-through connections, instead of performing MIDI Thru operations, to reduce the overhead of moving MIDI messages between the server and the client. This API provides a simple interface to perform a variety of transformations.

## Topics

### Finding Connections

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

Finds the persistent thru connections for the specified client.

### Managing Connections

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

Creates a MIDI thru connection.

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

Disposes a MIDI thru connection.

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

An opaque reference to a play-through connection.

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

A source or destination in a MIDI thru connection.

[Endpoint Configuration](/documentation/CoreMIDI/endpoint-configuration)

Values that define the supported endpoint configurations.

### Configuring Parameters

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

A set of MIDI routings and transformations.

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

Returns the size of a MIDI thru connection parameters object.

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

Initializes a parameters object with its default values.

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

Returns the thru connection’s parameters.

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

Updates a thru connection’s parameters.

### Transforming Values

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

A custom lookup table to transform MIDI 7-bit values, as contained in note numbers, velocities, control values, and so on.

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

A structure that describes the transformation of MIDI control change events.

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

The transformation of a single type of MIDI event.

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

Values that specify the type of MIDI transformation.

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

A set of values that indicate how to interpret control numbers.



---

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)