PHASE
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.
Note
If the audio in your game or app doesn’t incorporate environmental events or cues, you can use AVFoundation or Core Audio.
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
class PHASEEngine
enum UpdateMode
class PHASEAssetRegistry
enum PHASENormalizationMode
enum PHASESpatializationMode
enum PHASEReverbPreset
class PHASEMedium
class PHASESource
class PHASEListener
class PHASEOccluder
class PHASEObject
class PHASEShape
class Element
class PHASEMaterial
enum PHASEMaterialPreset
class PHASEMixerParameters
class PHASESoundAsset
class PHASESoundEvent
enum RenderingState
class PHASESoundEventNodeDefinition
class PHASESoundEventNodeAsset
class PHASEAsset
class PHASEChannelMixerDefinition
class PHASEAmbientMixerDefinition
class PHASEMixerDefinition
class PHASEMixer
class PHASEDefinition
class PHASEEnvelope
class PHASEEnvelopeSegment
enum PHASECurveType
class PHASENumericPair
class PHASEGroup
class PHASEGroupPreset
class PHASEGroupPresetSetting
class PHASEDucker