<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PHASE",
  "identifier" : "/documentation/PHASE",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "PHASE"
    ],
    "preciseIdentifier" : "PHASE"
  },
  "title" : "PHASE"
}
-->

# PHASE

Create dynamic audio experiences in your game or app that react to events and cues in the environment.

## Overview

Use PHASE (Physical Audio Spatialization Engine) to provide complex, dynamic audio experiences in your games and apps. With PHASE, you can control sound layers and adjust audio parameters in real time. As you develop your app, dynamic integration with your app’s visual scene enables audio to react to logic and visual changes automatically. The framework supports various audio hardware, which enables your app to provide a consistent spatial audio experience across platforms and output devices like headphones and speakers.

![Illustration of in-game scenes that demonstrate PHASE features. At left, a polygon contains a dragon with a callout that reads Volumetric sound source. A sound wave emits from the dragon to a hero. A tree structure extends outward from the dragon with a callout that reads Sound event hierarchy. The tree structure highlights a specific path from its root node to one of its leaf nodes. The leaf node contains a sound wave, which indicates a particular sound wave that emits from the dragon. At right, a dragon fireball collides with a rock. Sound waves emit outward from the fireball, except in the area behind the rock. A callout extends from the area that reads Geometric sound occlusion.](images/com.apple.phase/media-3855995@2x.png)

> Note:
> If the audio in your game or app doesn’t incorporate environmental events or cues, you can use <doc://com.apple.documentation/documentation/AVFoundation> or <doc://com.apple.documentation/documentation/CoreAudio>.

### Integrate Audio with Visual Simulation

Apps and games that model a detailed environment involve substantial revision during development. When you provide PHASE with a basic understanding of your app’s scene, audio plays in accordance with the scene’s characteristics. As you modify the scene, such as by adding a game level, the audio follows along by accommodating the level’s visual shape and properties. PHASE couples sound with visuals and minimizes your app’s audio maintenance by:

- Accepting scene geometry and reducing the volume of obstructed, sound-emitting scene objects. For example, PHASE lowers the volume of an incoming fireball when the player takes cover behind a wall.
- Offering complex sound events that play in reaction to your app’s runtime state.
- Adding sound effects that emanate from a shape. When you provide the shape of a scene object to PHASE, the sound’s volume scales based on the player’s distance and orientation relative to the shape.
- Adding reverberation and timed audio reflection to create environmental effects and simulate indoor scenes.

## Topics

### Essentials

[Playing sound from a location in a 3D scene](/documentation/PHASE/playing-sound-from-a-location-in-a-3d-scene)

Position sound from a specific direction and automatically raise or lower volume based on the environment.

[Personalizing spatial audio in your app](/documentation/PHASE/personalizing-spatial-audio-in-your-app)

Enhance the realism of spatial audio output by tracking a person’s head movement and accounting for their personal spatial audio profile.

  <doc://com.apple.documentation/documentation/Updates/PHASE>

### Setup

Initialize an engine object and prepare your app’s audio data for playback.

[`PHASEEngine`](/documentation/PHASE/PHASEEngine)

An object that manages audio assets, controls playback, and configures environmental effects.

[`PHASEEngine.UpdateMode`](/documentation/PHASE/PHASEEngine/UpdateMode)

Modes that determine when the framework consumes API calls and updates internal state.

[`PHASEEngine.RenderingMode`](/documentation/PHASE/PHASEEngine/RenderingMode)

Modes that determine whether the system renders audio in process or out of process.

[`PHASEAssetRegistry`](/documentation/PHASE/PHASEAssetRegistry)

A central repository of audio assets.

[`PHASENormalizationMode`](/documentation/PHASE/PHASENormalizationMode)

Options that determine whether the framework adjusts a sound asset’s loudness for the user’s output device.

[`PHASESpatializationMode`](/documentation/PHASE/PHASESpatializationMode)

The manner in which PHASE outputs spatial audio.

[`PHASEReverbPreset`](/documentation/PHASE/PHASEReverbPreset)

The manner in which PHASE diffuses resonating sound.

[`PHASEMedium`](/documentation/PHASE/PHASEMedium)

A property or quality of the environment that affects how sound travels.

### Soundscape Creation

Lay out objects in 3D space to play PHASE audio at runtime that’s consistent with your app’s visual scene.

[`PHASESource`](/documentation/PHASE/PHASESource)

An object that plays audio from a 3D location and orientation in a scene.

[`PHASEListener`](/documentation/PHASE/PHASEListener)

A central point of reference that defines the location within the scene that’s most audible to the user.

[`PHASEOccluder`](/documentation/PHASE/PHASEOccluder)

An object with a shape and position that blocks audio from reaching the listener.

[`PHASEObject`](/documentation/PHASE/PHASEObject)

An object in the scene.

[`PHASEShape`](/documentation/PHASE/PHASEShape)

A collection of points that connect to form a 3D volume.

[`PHASEShape.Element`](/documentation/PHASE/PHASEShape/Element)

An object that describes the characteristics of a physical surface.

[`PHASEMaterial`](/documentation/PHASE/PHASEMaterial)

Surface characteristics that determine the acoustic properties of an object.

[`PHASEMaterialPreset`](/documentation/PHASE/PHASEMaterialPreset)

A collection of physical surfaces that each add a unique acoustic quality to your app’s audio.

[`PHASEMixerParameters`](/documentation/PHASE/PHASEMixerParameters)

An object that specifies a mixer for sound events and orients them in 3D space.

### Audio Selection and Playback

Create a hierarchy of nodes that tailors playback based on your app’s current state.

[`PHASESoundAsset`](/documentation/PHASE/PHASESoundAsset)

A sound resource stored in the asset registry.

[`PHASESoundEvent`](/documentation/PHASE/PHASESoundEvent)

An object that determines which audio to play.

[`PHASESoundEvent.RenderingState`](/documentation/PHASE/PHASESoundEvent/RenderingState-swift.enum)

The playback status of audio.

[`PHASESoundEventNodeDefinition`](/documentation/PHASE/PHASESoundEventNodeDefinition)

A base class for sound event nodes that connect to form a node hierarchy.

[`PHASESoundEventNodeAsset`](/documentation/PHASE/PHASESoundEventNodeAsset)

A template object for sounds that can play in reaction to environmental state.

[`PHASEAsset`](/documentation/PHASE/PHASEAsset)

A base class that adds a name to framework assets.

[Sound Event Nodes](/documentation/PHASE/sound-event-nodes)

Objects that connect to form a hierarchical tree of audio actions.

### Audio Layering and Effects

Choose among the various ways to play sound depending on your app’s unique audio-playback needs.

[`PHASEChannelMixerDefinition`](/documentation/PHASE/PHASEChannelMixerDefinition)

An audio-layering object that routes sound directly to the device’s output.

[`PHASEAmbientMixerDefinition`](/documentation/PHASE/PHASEAmbientMixerDefinition)

An audio-layering object that outputs sound in a particular direction in 3D space.

[`PHASEMixerDefinition`](/documentation/PHASE/PHASEMixerDefinition)

An object to initialize a mixer with a given configuration.

[`PHASEMixer`](/documentation/PHASE/PHASEMixer)

An object that combines multiple audio signals into a single signal.

[`PHASEDefinition`](/documentation/PHASE/PHASEDefinition)

A base class that adds a name to framework definitions.

[Spatial Mixing](/documentation/PHASE/spatial-mixing)

Define environmental characteristics that determine how sound plays in your app’s 3D soundscape.

### Dynamic Sound Control

Apply mathematical functions or custom logic to change the properties of in-flight audio or the conditions under which audio plays.

[`PHASEEnvelope`](/documentation/PHASE/PHASEEnvelope)

A collection of segments that connect to graph a complex curve over a linear input.

[`PHASEEnvelopeSegment`](/documentation/PHASE/PHASEEnvelopeSegment)

A curved portion of an envelope.

[`PHASECurveType`](/documentation/PHASE/PHASECurveType)

Options that apply a mathematical function to an input value.

[`PHASENumericPair`](/documentation/PHASE/PHASENumericPair)

An ordered pair that defines a bounding box for an envelope.

[Playback Parameterization](/documentation/PHASE/playback-parameterization)

Change the characteristics of in-flight audio by adjusting its properties at runtime.

### Sound Grouping and Management

Change the characteristics of a group of sounds, such as altering their volume when your app transitions to a menu.

[`PHASEGroup`](/documentation/PHASE/PHASEGroup)

A container that shares audio parameters with a collection of sounds.

[`PHASEGroupPreset`](/documentation/PHASE/PHASEGroupPreset)

A collection of settings for groups.

[`PHASEGroupPresetSetting`](/documentation/PHASE/PHASEGroupPresetSetting)

Settings for group presets.

[`PHASEDucker`](/documentation/PHASE/PHASEDucker)

An object that manages competing sounds.

### Errors

[PHASE Errors](/documentation/PHASE/phase-errors)

Errors that the PHASE framework reports.



---

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)
