Source
A Source represents an emitting sound source. It stores transform and simulation settings, and one or more SteamAudioNode render its audio.
Methods
Section titled “Methods”setPosition(position)
Section titled “setPosition(position)”source.setPosition(position: Vector3Like): voidSets the source position in world space.
setOrientation(orientation)
Section titled “setOrientation(orientation)”source.setOrientation(orientation: QuaternionLike): voidSets the source orientation as a quaternion.
setTransform(position, orientation)
Section titled “setTransform(position, orientation)”source.setTransform(position: Vector3Like, orientation: QuaternionLike): voidSets both position and orientation in one call.
setSettings(settings)
Section titled “setSettings(settings)”source.setSettings(settings: Partial<SourceSettings>): voidUpdates source settings at runtime. See SourceSettings.
setDirectOverrides(overrides)
Section titled “setDirectOverrides(overrides)”source.setDirectOverrides(overrides: DirectOverrides | null): voidManually overrides distance attenuation, air absorption, directivity, occlusion, and transmission values sent to the audio node. Pass null to clear overrides.
getDirectOutputs(target?)
Section titled “getDirectOutputs(target?)”source.getDirectOutputs(target?: DirectOutputs): DirectOutputsReturns the latest direct simulation outputs. The optional target object is mutated and returned, which can reduce allocations.
dispose()
Section titled “dispose()”source.dispose(): voidDisposes the source and any nodes connected to it.
SourceSettings
Section titled “SourceSettings”spatialization
: SpatializationSettings — direct sound spatialization renderer. Defaults to { mode: 'binaural', blend: 1, interpolation: 'nearest' }.
mode: 'binaural'maps to Steam Audio Direct Binaural.interpolationmay be'nearest'(default, lower CPU cost) or'bilinear'(smoother moving wide-band sources at a higher CPU cost).mode: 'panning'uses Steam Audio stereo speaker panning.mode: 'none'leaves direct audio unspatialized.blendis available for binaural and panning modes. It is in[0, 1], where1is fully spatialized.
direct
: false | DirectSettings — configures direct-path sound. Pass false to disable the direct path.
perspectiveCorrection
: boolean — opt this source into the World’s perspective correction. Default: false. This changes spatialization direction only; simulation remains in world space.
reflections
: false | ReflectionSettings — enables or configures per-source reflections. Requires world reflections.
DirectSettings
Section titled “DirectSettings”airAbsorption
: boolean | AirAbsorptionSettings — enables default air absorption or supplies a custom model.
occlusion
: false | { type?: 'raycast' | 'volumetric', radius?: number, samples?: number } — occlusion settings.
distanceAttenuation
: DistanceAttenuationSettings | false — distance attenuation model, or false to disable.
directivity
: false | { dipoleWeight?: number, dipolePower?: number } — directional emission pattern.
mixLevel
: number in [0, 1] — direct-path output gain. Default: 1. Use an external GainNode for gains above unity.
transmission
: false | { maxSurfaces?: number, type?: 'frequency-dependent' | 'frequency-independent' } — transmission model. Requires occlusion. maxSurfaces is an integer in [1, 8]; default: 1. type defaults to 'frequency-independent'.
DistanceAttenuationSettings
Section titled “DistanceAttenuationSettings”{ model: 'default' }
: Physics-based inverse-distance attenuation.
{ model: 'inverse', minDistance?: number }
: Inverse distance with a custom minimum distance.
{ model: 'curve', minDistance, maxDistance, curve, sampleCount? }
: Custom curve function sampled into a lookup table.
ReflectionSettings
Section titled “ReflectionSettings”reverbScale
: ThreeBand — per-band reverb scale. Default: [1, 1, 1].
mixLevel
: number — reflections mix level. Default: 1.
DirectOverrides
Section titled “DirectOverrides”distanceAttenuation
: number in [0, 1].
airAbsorption
: ThreeBand in [0, 1].
directivity
: number in [0, 1].
occlusion
: number in [0, 1].
transmission
: ThreeBand in [0, 1].
ThreeBand values must contain exactly three entries: low, mid, and high.
DirectOutputs
Section titled “DirectOutputs”distanceAttenuation
: number.
airAbsorption
: [number, number, number].
directivity
: number.
occlusion
: number.
transmission
: [number, number, number].