---
title: AVAudioNode
framework: avfaudio
role: symbol
role_heading: Class
path: avfaudio/avaudionode
---

# AVAudioNode

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

## Declaration

```swift
class AVAudioNode
```

## Overview

Overview An 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 and AVAudioOutputNode.

## Topics

### Configuring an Input Format Bus

- [AVAudioNodeBus](avfaudio/avaudionodebus.md)
- [inputFormat(forBus:)](avfaudio/avaudionode/inputformat(forbus:).md)
- [name(forInputBus:)](avfaudio/avaudionode/name(forinputbus:).md)
- [numberOfInputs](avfaudio/avaudionode/numberofinputs.md)

### Creating an Output Format Bus

- [outputFormat(forBus:)](avfaudio/avaudionode/outputformat(forbus:).md)
- [name(forOutputBus:)](avfaudio/avaudionode/name(foroutputbus:).md)
- [numberOfOutputs](avfaudio/avaudionode/numberofoutputs.md)

### Installing and Removing an Audio Tap

- [installAudioTap(onBus:bufferSize:format:tapProvider:)](avfaudio/avaudionode/installaudiotap(onbus:buffersize:format:tapprovider:).md)
- [installTap(onBus:bufferSize:format:block:)](avfaudio/avaudionode/installtap(onbus:buffersize:format:block:).md)
- [removeTap(onBus:)](avfaudio/avaudionode/removetap(onbus:).md)
- [AVAudioNodeTapBlock](avfaudio/avaudionodetapblock.md)

### Getting the Audio Engine for the Node

- [engine](avfaudio/avaudionode/engine.md)

### Getting the Latest Node Render Time

- [lastRenderTime](avfaudio/avaudionode/lastrendertime.md)

### Getting Audio Node Properties

- [withAUAudioUnit(_:)](avfaudio/avaudionode/withauaudiounit(_:).md)
- [auAudioUnit](avfaudio/avaudionode/auaudiounit-1gu8g.md)
- [latency](avfaudio/avaudionode/latency.md)
- [outputPresentationLatency](avfaudio/avaudionode/outputpresentationlatency.md)

### Resetting the Audio Node

- [reset()](avfaudio/avaudionode/reset().md)

### Constants

- [AVAudioNodeCompletionHandler](avfaudio/avaudionodecompletionhandler.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [AVAudioEnvironmentNode](avfaudio/avaudioenvironmentnode.md)
- [AVAudioIONode](avfaudio/avaudioionode.md)
- [AVAudioMixerNode](avfaudio/avaudiomixernode.md)
- [AVAudioPlayerNode](avfaudio/avaudioplayernode.md)
- [AVAudioSinkNode](avfaudio/avaudiosinknode.md)
- [AVAudioSourceNode](avfaudio/avaudiosourcenode.md)
- [AVAudioUnit](avfaudio/avaudiounit.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Nodes

- [AVAudioInputNode](avfaudio/avaudioinputnode.md)
- [AVAudioOutputNode](avfaudio/avaudiooutputnode.md)
- [AVAudioIONode](avfaudio/avaudioionode.md)
