<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PHASE",
  "identifier" : "/documentation/PHASE/PHASEChannelMixerDefinition",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "PHASE"
    ],
    "preciseIdentifier" : "c:objc(cs)PHASEChannelMixerDefinition"
  },
  "title" : "PHASEChannelMixerDefinition"
}
-->

# PHASEChannelMixerDefinition

An audio-layering object that routes sound directly to the device’s output.

```
class PHASEChannelMixerDefinition
```

## Overview

Use this class to play one-time sounds such as menu clicks.

> Note:
> If your audio playback requires 3D orienting or positioning, use ``doc://com.apple.phase/documentation/PHASE/PHASEAmbientMixerDefinition`` or ``doc://com.apple.phase/documentation/PHASE/PHASESpatialMixerDefinition``, respectively. For more information, see <doc://com.apple.phase/documentation/PHASE/spatial-mixing>.

This class defines the *channel routing*, which is the strategy the framework uses to send source mono or multichannel assets to the output for playback. The asset’s audio channels route to the output for playback according to the channel layout and runtime output conditions the app designates on an instance of this class.

This class minimizes *up mixing* and *down mixing* — that is, source audio channel conversion to a higher or lower number of channels. For example, although a spatial mixer overrides the use of output channels by panning to convey listener position and orientation, the channel mixer maintains source audio channel layout to preserve the listening experience of the source audio.

## Topics

### Creating a Channel Mixer

[`-  initWithChannelLayout:`](/documentation/PHASE/PHASEChannelMixerDefinition/init(channelLayout:))

Creates a channel mixer with the given channel layout.

[`-  initWithChannelLayout:identifier:`](/documentation/PHASE/PHASEChannelMixerDefinition/init(channelLayout:identifier:))

Creates a named channel mixer with the given channel layout.

### Inspecting Channel Layout

[`inputChannelLayout`](/documentation/PHASE/PHASEChannelMixerDefinition/inputChannelLayout)

The channel layout of the mixer’s input audio.

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

### Inherits From

[`PHASEMixerDefinition`](/documentation/PHASE/PHASEMixerDefinition)

---

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)