<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFAudio",
  "identifier" : "/documentation/AVFAudio/AVAudioNode",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFAudio"
    ],
    "preciseIdentifier" : "c:objc(cs)AVAudioNode"
  },
  "title" : "AVAudioNode"
}
-->

# AVAudioNode

An object you use for audio generation, processing, or an I/O block.

```
class AVAudioNode
```

## Overview

An [`AVAudioEngine`](/documentation/AVFAudio/AVAudioEngine) object contains instances of audio nodes that you attach, and this base class provides common functionality. Instances of this class don’t provide useful functionality until you attach them to an engine.

Nodes have input and output busses that serve as connection points. For example, an effect has one input bus and one output bus, and a mixer has multiple input busses and one output bus.

A bus contains a format the framework expresses in terms of sample rate and channel count. Formats must match exactly when making connections between nodes, excluding [`AVAudioMixerNode`](/documentation/AVFAudio/AVAudioMixerNode) and [`AVAudioOutputNode`](/documentation/AVFAudio/AVAudioOutputNode).

## Topics

### Configuring an Input Format Bus

[`AVAudioNodeBus`](/documentation/AVFAudio/AVAudioNodeBus)

The index of a bus on an audio node.

[`inputFormat(forBus:)`](/documentation/AVFAudio/AVAudioNode/inputFormat(forBus:))

Gets the input format for the bus you specify.

[`name(forInputBus:)`](/documentation/AVFAudio/AVAudioNode/name(forInputBus:))

Gets the name of the input bus you specify.

[`numberOfInputs`](/documentation/AVFAudio/AVAudioNode/numberOfInputs)

The number of input busses for the node.

### Creating an Output Format Bus

[`outputFormat(forBus:)`](/documentation/AVFAudio/AVAudioNode/outputFormat(forBus:))

Retrieves the output format for the bus you specify.

[`name(forOutputBus:)`](/documentation/AVFAudio/AVAudioNode/name(forOutputBus:))

Retrieves the name of the output bus you specify.

[`numberOfOutputs`](/documentation/AVFAudio/AVAudioNode/numberOfOutputs)

The number of output busses for the node.

### Installing and Removing an Audio Tap

[`installAudioTap(onBus:bufferSize:format:tapProvider:)`](/documentation/AVFAudio/AVAudioNode/installAudioTap(onBus:bufferSize:format:tapProvider:))

Install a tap on a bus using a sendable block

[`installTap(onBus:bufferSize:format:block:)`](/documentation/AVFAudio/AVAudioNode/installTap(onBus:bufferSize:format:block:))

Installs an audio tap on a bus you specify to record, monitor, and observe the output of the node.

[`removeTap(onBus:)`](/documentation/AVFAudio/AVAudioNode/removeTap(onBus:))

Removes an audio tap on a bus you specify.

[`AVAudioNodeTapBlock`](/documentation/AVFAudio/AVAudioNodeTapBlock)

The block that receives copies of the output of an audio node.

### Getting the Audio Engine for the Node

[`engine`](/documentation/AVFAudio/AVAudioNode/engine)

The audio engine that manages the node, if any.

### Getting the Latest Node Render Time

[`lastRenderTime`](/documentation/AVFAudio/AVAudioNode/lastRenderTime)

The most recent render time.

### Getting Audio Node Properties

[`withAUAudioUnit(_:)`](/documentation/AVFAudio/AVAudioNode/withAUAudioUnit(_:))

Provides scoped access to the node’s AUAudioUnit

[`auAudioUnit`](/documentation/AVFAudio/AVAudioNode/auAudioUnit-1gu8g)

An audio unit object that wraps or underlies the implementation’s audio unit.

[`latency`](/documentation/AVFAudio/AVAudioNode/latency)

The processing latency of the node, in seconds.

[`outputPresentationLatency`](/documentation/AVFAudio/AVAudioNode/outputPresentationLatency)

The maximum render pipeline latency downstream of the node, in seconds.

### Resetting the Audio Node

[`reset()`](/documentation/AVFAudio/AVAudioNode/reset())

Clears a unit’s previous processing state.

### Constants

[`AVAudioNodeCompletionHandler`](/documentation/AVFAudio/AVAudioNodeCompletionHandler)

A general callback handler for an audio node.



---

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)