<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "macOS: 13.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/AUMessageChannel",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Audio Toolbox"
    ],
    "preciseIdentifier" : "c:objc(pl)AUMessageChannel"
  },
  "title" : "AUMessageChannel"
}
-->

# AUMessageChannel

A specification for a bidirectional communication message channel.

```
protocol AUMessageChannel
```

## Overview

Audio units and their hosts have unique communication needs. For example, for better audio processing they can exchange musical context. An audio unit implements a class that conforms to [`AUMessageChannel`](/documentation/AudioToolbox/AUMessageChannel) and returns an instance from [`messageChannel(for:)`](/documentation/AudioToolbox/AUAudioUnit/messageChannel(for:)). A host queries the instance through the channel name.

This protocol offers a method to send messages to an audio unit and a block to send messages to the host.

## Topics

### Sending a Message to an Audio Unit

[`-  callAudioUnit:`](/documentation/AudioToolbox/AUMessageChannel/callAudioUnit(_:))

Sends an audio unit a custom data message.

### Sending a Message to a Host

[`callHostBlock`](/documentation/AudioToolbox/AUMessageChannel/callHostBlock)

A callback for the audio unit to send a message to the host.



---

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)