<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/AUAudioUnit/renderBlock",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Audio Toolbox"
    ],
    "preciseIdentifier" : "c:objc(cs)AUAudioUnit(py)renderBlock"
  },
  "title" : "renderBlock"
}
-->

# renderBlock

The block that hosts use to ask the audio unit to render audio.

```
var renderBlock: AURenderBlock { get }
```

## Discussion

Before invoking an audio unit’s rendering functionality, a host should fetch this block and cache the result. The block can then be called from a realtime context without the possibility of blocking and causing an overload at the Core Audio HAL level.

This block will call a subclass’s [`internalRenderBlock`](/documentation/AudioToolbox/AUAudioUnit/internalRenderBlock) implementation, providing all realtime events scheduled for the current render time interval, bracketed by calls to any render observers. Subclasses should override their [`internalRenderBlock`](/documentation/AudioToolbox/AUAudioUnit/internalRenderBlock) implementation, not this property.

This version 3 property is bridged to the version 2 [`AudioUnitRender(_:_:_:_:_:_:)`](/documentation/AudioToolbox/AudioUnitRender(_:_:_:_:_:_:)) API.

---

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)