---
title: "init(streamDescription:channelLayout:)"
framework: avfaudio
role: symbol
role_heading: Initializer
path: "avfaudio/avaudioformat/init(streamdescription:channellayout:)"
---

# init(streamDescription:channelLayout:)

Creates an audio format instance from a stream description and channel layout.

## Declaration

```swift
init?(streamDescription asbd: UnsafePointer<AudioStreamBasicDescription>, channelLayout layout: AVAudioChannelLayout?)
```

## Parameters

- `asbd`: The audio stream description.
- `layout`: The channel layout.

## Return Value

Return Value A new AVAudioFormat instance, or nil if the initialization fails.

## Discussion

Discussion When layout is nil, and asbd specifies one or two channels, this method assumes mono or stereo layout, respectively. If the AudioStreamBasicDescription specifies more than two channels and layout is nil, this method fails and returns nil.

## See Also

### Creating a New Audio Format Representation

- [init(standardFormatWithSampleRate:channelLayout:)](avfaudio/avaudioformat/init(standardformatwithsamplerate:channellayout:).md)
- [init(standardFormatWithSampleRate:channels:)](avfaudio/avaudioformat/init(standardformatwithsamplerate:channels:).md)
- [init(commonFormat:sampleRate:channels:interleaved:)](avfaudio/avaudioformat/init(commonformat:samplerate:channels:interleaved:).md)
- [init(commonFormat:sampleRate:interleaved:channelLayout:)](avfaudio/avaudioformat/init(commonformat:samplerate:interleaved:channellayout:).md)
- [init(settings:)](avfaudio/avaudioformat/init(settings:).md)
- [init(streamDescription:)](avfaudio/avaudioformat/init(streamdescription:).md)
- [init(formatDescription:)](avfaudio/avaudioformat/init(formatdescription:).md)
- [init(cmAudioFormatDescription:)](avfaudio/avaudioformat/init(cmaudioformatdescription:)-8rdfj.md)
