---
title: channelCapabilities
framework: audiotoolbox
role: symbol
role_heading: Instance Property
path: audiotoolbox/auaudiounit/channelcapabilities
---

# channelCapabilities

Expresses valid combinations of input and output channels.

## Declaration

```swift
var channelCapabilities: [NSNumber]? { get }
```

## Discussion

Discussion Array elements are NSNumber values containing integers. The array index alternates between input and output counts, in ascending order of input/output channels—for example: [0] = first input count, [1] = first output count, [2] = second input count, [3] = second output count, etc. Positive array values specify the number of input and/or output channels supported. Negative array values have particular meanings. An input/output value pair of (-1, -1) (i.e. [0] = -1, [1] = -1) indicates that any number of channels are supported, as long as they are the same number for both input and output. An input/output value pair combination of -1 and -2 (e.g. [0] = -1, [1] = -2) also indicates that any number of channels are supported, but without the requirement that the input and output counts are the same. A negative value less than -2 (e.g. [0] = -16) specifies a total number of channels across every bus in that scope, regardless of how many channels are set on any particular bus. An array value of 0 (e.g. [0] = 0) specifies that the input/output channel is not applicable (though typically only used for input channels). The table below shows a sample selection of valid input and output channel combinations:  |  |   |  |   |  |   |  |   |  |   |  |   |  |  This version 3 property is bridged to the version 2 kAudioUnitProperty_SupportedNumChannels API.

## See Also

### Configuring the Channel Capabilities

- [channelMap](audiotoolbox/auaudiounit/channelmap.md)
- [profileState(forCable:channel:)](audiotoolbox/auaudiounit/profilestate(forcable:channel:).md)
- [enable(_:cable:onChannel:)](audiotoolbox/auaudiounit/enable(_:cable:onchannel:).md)
- [disableProfile(_:cable:onChannel:)](audiotoolbox/auaudiounit/disableprofile(_:cable:onchannel:).md)
- [profileChangedBlock](audiotoolbox/auaudiounit/profilechangedblock.md)
