📄 threejs/Core/Audio/PositionalAudio

File: PositionalAudio.md | Updated: 11/15/2025


title: PositionalAudio category: Core layout: docs

PositionalAudio

Represents a positional audio object.

Code Example

// create an AudioListener and add it to the camera
const listener = new THREE.AudioListener();
camera.add( listener );
// create the PositionalAudio object (passing in the listener)
const sound = new THREE.PositionalAudio( listener );
// load a sound and set it as the PositionalAudio object's buffer
const audioLoader = new THREE.AudioLoader();
audioLoader.load( 'sounds/song.ogg', function( buffer ) {
	sound.setBuffer( buffer );
	sound.setRefDistance( 20 );
	sound.play();
});
// create an object for the sound to play from
const sphere = new THREE.SphereGeometry( 20, 32, 16 );
const material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
const mesh = new THREE.Mesh( sphere, material );
scene.add( mesh );
// finally add the sound to the mesh
mesh.add( sound );

Constructor

new PositionalAudio( listener : AudioListener )

Constructs a positional audio.

listener | The global audio listener.
---|---

Properties

.panner : PannerNode (readonly)

The panner node represents the location, direction, and behavior of an audio source in 3D space.

Methods

.getDistanceModel() : 'linear' | 'inverse' | 'exponential'

Returns the current distance model.

Returns: The distance model.

.getMaxDistance() : number

Returns the current max distance.

Returns: The max distance.

.getRefDistance() : number

Returns the current reference distance.

Returns: The reference distance.

.getRolloffFactor() : number

Returns the current rolloff factor.

Returns: The rolloff factor.

.setDirectionalCone( coneInnerAngle : number, coneOuterAngle : number, coneOuterGain : number ) : PositionalAudio

Sets the directional cone in which the audio can be listened.

coneInnerAngle | An angle, in degrees, of a cone inside of which there will be no volume reduction.
---|---
coneOuterAngle | An angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the coneOuterGain parameter.
coneOuterGain | The amount of volume reduction outside the cone defined by the coneOuterAngle. When set to 0, no sound can be heard.

Returns: A reference to this instance.

.setDistanceModel( value : 'linear' | 'inverse' | 'exponential' ) : PositionalAudio

Defines which algorithm to use to reduce the volume of the audio source as it moves away from the listener.

Read the spec for more details.

value | The distance model to set.
---|---

Returns: A reference to this instance.

.setMaxDistance( value : number ) : PositionalAudio

Defines the maximum distance between the audio source and the listener, after which the volume is not reduced any further.

This value is used only by the linear distance model.

value | The max distance.
---|---

Returns: A reference to this instance.

.setRefDistance( value : number ) : PositionalAudio

Defines the reference distance for reducing volume as the audio source moves further from the listener – i.e. the distance at which the volume reduction starts taking effect.

value | The reference distance to set.
---|---

Returns: A reference to this instance.

.setRolloffFactor( value : number ) : PositionalAudio

Defines how quickly the volume is reduced as the source moves away from the listener.

value | The rolloff factor.
---|---

Returns: A reference to this instance.

Source

src/audio/PositionalAudio.js