<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 18.0.0 -",
    "macOS: 15.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/ReverbComponent",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation15ReverbComponentV"
  },
  "title" : "ReverbComponent"
}
-->

# ReverbComponent

A component that defines the reverberation of spatial audio sources.

```
struct ReverbComponent
```

## Overview

Bring your spatial audio to life by setting a reverb appropriate for your immersive environment.
In visionOS, an acoustic simulation of a person’s real environment reverberates the spatial audio sources
by default.
When presenting your content in
<doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/progressive>
and <doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/full>
immersive spaces, consider setting a reverb component to make your spatial audio sound like it
exists within the environment that your visuals represent.

For example, a desert, living room, and concert hall each have unique acoustical
characteristics. When the visuals and acoustic properties of sounds in your
content are congruent, the environment becomes more effective as a whole.

```swift
// Create an entity to hold the reverb component and
// use the concert hall preset.
let reverbEntity = Entity()
reverbEntity.components.set(ReverbComponent(reverb: .preset(.concertHall)))

// Add the reverb entity to the reality view.
content.add(reverbEntity)

// Load an audio file of a violin.
if let violin = try? await AudioFileResource(named: "violin") {

    // Create an entity for playing the violin audio and
    // set the spatial audio component.
    let violinEntity = Entity()
    violinEntity.components.set(
        SpatialAudioComponent(
            directivity: .beam(focus: 0.2)
        )
    )
    violinEntity.playAudio(violin)

    // Add the violin entity to the reality view.
    content.add(violinEntity)
}
```

Use the [`reverbLevel`](/documentation/RealityKit/SpatialAudioComponent/reverbLevel) property to adjust the level
of audio you send to the spatial modeler.
Use the [`directLevel`](/documentation/RealityKit/SpatialAudioComponent/directLevel) property to adjust the level of audio you
send directly to a person’s ears, without additional reverberation.
Use the [`directivity`](/documentation/RealityKit/SpatialAudioComponent/directivity) property
to define the pattern that disperses sound into the acoustic environment.

In macOS and iOS, only one `ReverbComponent` can be active at a time per [`ARView`](/documentation/RealityKit/ARView) or [`RealityView`](/documentation/RealityKit/RealityView).
In visionOS, a `ReverbComponent` is only active while an app has a
<doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/progressive> or
<doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/full>
immersive space open.

You can place multiple simulated reverb components in a scene — for example, one entity each
for the ceiling, floor, and walls of a virtual room — and the reflections and reverb update
as audio sources move through the space. However, only one preset reverb can be active at a time;
if both a preset and simulated reverb are present, the preset takes priority.

When the content is within a <doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/progressive>
immersive space, the Digital Crown adjusts how RealityKit blends:

- The acoustics simulation of a person’s real-world environment
- The reverberation the `ReverbComponent` generates

When your app is in a Shared Space <doc://com.apple.documentation/documentation/SwiftUI/WindowGroup>
or an <doc://com.apple.documentation/documentation/SwiftUI/ImmersiveSpace>
using a <doc://com.apple.documentation/documentation/SwiftUI/ImmersionStyle/mixed> style,
RealityKit reverberates the spatial audio from the acoustics simulation
and ignores the reverberation from the `ReverbComponent`.

## Topics

### Initializers

[`init(reverb: Reverb)`](/documentation/RealityKit/ReverbComponent/init(reverb:))

Creates a component from a reverberation setting.

### Instance Properties

[`var reverb: Reverb`](/documentation/RealityKit/ReverbComponent/reverb)

A reverberation setting the component applies to spatial audio.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Component`](/documentation/RealityKit/Component)

[`Hashable`](/documentation/Swift/Hashable)

---

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)