Skip to content

Class: AudioSystem

Defined in: packages/core/src/audio/audio-system.ts:26

Runtime audio manager that loads sources, pools players, and applies XR-aware behavior.

Remarks

  • Creates an AudioListener on the player head and resumes/suspends the audio context when XR sessions start/end.
  • Pools Audio/PositionalAudio instances per entity to minimize allocations and implements play/overlap/fade-restart behaviors.
  • Optionally culls distant positional audio by a distance multiplier.

Extends

  • System<{ cullingDistanceMultiplier: { default: number; type: Float32; }; enableDistanceCulling: { default: true; type: Boolean; }; }, { audioEntities: { required: Component<{ _buffer: { default: any; type: Object; }; _fadeIn: { default: number; type: Float32; }; _fadeOut: { default: number; type: Float32; }; _instances: { default: any; type: Object; }; _isPlaying: { default: false; type: Boolean; }; _loaded: { default: false; type: Boolean; }; _loading: { default: false; type: Boolean; }; _pauseRequested: { default: false; type: Boolean; }; _playRequested: { default: false; type: Boolean; }; _pool: { default: any; type: Object; }; _stopRequested: { default: false; type: Boolean; }; autoplay: { default: false; type: Boolean; }; coneInnerAngle: { default: number; type: Float32; }; coneOuterAngle: { default: number; type: Float32; }; coneOuterGain: { default: number; type: Float32; }; crossfadeDuration: { default: number; type: Float32; }; distanceModel: { default: "inverse"; enum: { Exponential: "exponential"; Inverse: "inverse"; Linear: "linear"; }; type: Enum; }; instanceStealPolicy: { default: "oldest"; enum: { Furthest: "furthest"; Oldest: "oldest"; Quietest: "quietest"; }; type: Enum; }; loop: { default: false; type: Boolean; }; maxDistance: { default: number; type: Float32; }; maxInstances: { default: number; type: Int8; }; playbackMode: { default: "restart"; enum: { FadeRestart: "fade-restart"; Ignore: "ignore"; Overlap: "overlap"; Restart: "restart"; }; type: Enum; }; positional: { default: true; type: Boolean; }; refDistance: { default: number; type: Float32; }; rolloffFactor: { default: number; type: Float32; }; src: { default: string; type: String; }; volume: { default: number; type: Float32; }; }>[]; }; }, this>

Constructors

Constructor

new AudioSystem(_w, _qm, _p): AudioSystem

Defined in: node_modules/.pnpm/elics@3.3.0/node_modules/elics/lib/system.d.ts:73

Parameters

_w

World

_qm

QueryManager

_p

number

Returns

AudioSystem

Inherited from

createSystem( { audioEntities: { required: [AudioSource] }, }, { /** Enable distance-based culling for positional audio instances. */ enableDistanceCulling: { type: Types.Boolean, default: true }, /** Multiplier applied to `maxDistance` for culling threshold. */ cullingDistanceMultiplier: { type: Types.Float32, default: 1.5 }, }, ).constructor

Properties

camera

readonly camera: PerspectiveCamera

Defined in: packages/core/src/ecs/system.ts:60

Inherited from

System.camera


cleanupFuncs

readonly cleanupFuncs: () => void[]

Defined in: packages/core/src/ecs/system.ts:63

Returns

void

Inherited from

System.cleanupFuncs


config

config: SystemConfigSignals<S>

Defined in: packages/core/src/ecs/system.ts:48

Inherited from

System.config


createEntity()

createEntity: () => Entity

Defined in: packages/core/src/ecs/system.ts:69

Returns

Entity

Inherited from

System.createEntity


globals

globals: Record<string, any>

Defined in: packages/core/src/ecs/system.ts:53

Inherited from

System.globals


input

readonly input: XRInputManager

Defined in: packages/core/src/ecs/system.ts:58

Inherited from

System.input


isPaused

isPaused: boolean

Defined in: packages/core/src/ecs/system.ts:47

Inherited from

System.isPaused


player

readonly player: XROrigin

Defined in: packages/core/src/ecs/system.ts:57

Inherited from

System.player


priority

priority: number

Defined in: packages/core/src/ecs/system.ts:52

Inherited from

System.priority


queries

queries: Record<keyof Q, Query>

Defined in: packages/core/src/ecs/system.ts:49

Inherited from

System.queries


queryManager

queryManager: QueryManager

Defined in: packages/core/src/ecs/system.ts:51

Inherited from

System.queryManager


renderer

readonly renderer: WebGLRenderer

Defined in: packages/core/src/ecs/system.ts:61

Inherited from

System.renderer


scene

readonly scene: Scene

Defined in: packages/core/src/ecs/system.ts:59

Inherited from

System.scene


visibilityState

readonly visibilityState: Signal<VisibilityState>

Defined in: packages/core/src/ecs/system.ts:62

Inherited from

System.visibilityState


world

world: World

Defined in: packages/core/src/ecs/system.ts:50

Inherited from

System.world


xrFrame

xrFrame: XRFrame

Defined in: packages/core/src/ecs/system.ts:55

Inherited from

System.xrFrame


xrManager

xrManager: WebXRManager

Defined in: packages/core/src/ecs/system.ts:54

Inherited from

System.xrManager

Methods

destroy()

destroy(): void

Defined in: packages/core/src/audio/audio-system.ts:597

Returns

void

Overrides

createSystem( { audioEntities: { required: [AudioSource] }, }, { /** Enable distance-based culling for positional audio instances. */ enableDistanceCulling: { type: Types.Boolean, default: true }, /** Multiplier applied to `maxDistance` for culling threshold. */ cullingDistanceMultiplier: { type: Types.Float32, default: 1.5 }, }, ).destroy


init()

init(): void

Defined in: packages/core/src/audio/audio-system.ts:43

Returns

void

Overrides

System.init


play()

play(): void

Defined in: packages/core/src/ecs/system.ts:67

Returns

void

Inherited from

System.play


stop()

stop(): void

Defined in: packages/core/src/ecs/system.ts:68

Returns

void

Inherited from

System.stop


update()

update(_delta, _time): void

Defined in: packages/core/src/audio/audio-system.ts:94

Parameters

_delta

number

_time

number

Returns

void

Overrides

System.update