PannerNode
==========

The `PannerNode` interface defines an audio-processing object that represents the location, direction, and behavior of an audio source signal in a simulated physical space. This `AudioNode` uses right-hand Cartesian coordinates to describe the source's *position* as a vector and its *orientation* as a 3D directional cone.

A `PannerNode` always has exactly one input and one output: the input can be *mono* or *stereo* but the output is always *stereo* (2 channels); you can't have panning effects without at least two audio channels!

![The PannerNode defines a spatial position and direction for a given signal.](/en-US/docs/Web/API/PannerNode/webaudiopannernode.png)

EventTarget

AudioNode

PannerNode

|  |  |
| --- | --- |
| Number of inputs | `1` |
| Number of outputs | `1` |
| Channel count mode | `"clamped-max"` |
| Channel count | `2` |
| Channel interpretation | `"speakers"` |

Constructor
-----------

`PannerNode()`

Creates a new `PannerNode` object instance.

Instance properties
-------------------

*Inherits properties from its parent, `AudioNode`*.

**Note:** The orientation and position value are set and retrieved using different syntaxes, since they're stored as `AudioParam` values. Retrieval is done by accessing, for example, `PannerNode.positionX`. While setting the same property is done with `PannerNode.positionX.value`. This is why these values are not marked read only, which is how they appear in the WebIDL.

`PannerNode.coneInnerAngle`

A double value describing the angle, in degrees, of a cone inside of which there will be no volume reduction.

`PannerNode.coneOuterAngle`

A double value describing the angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the `coneOuterGain` property.

`PannerNode.coneOuterGain`

A double value describing the amount of volume reduction outside the cone defined by the `coneOuterAngle` attribute. Its default value is `0`, meaning that no sound can be heard.

`PannerNode.distanceModel`

An enumerated value determining which algorithm to use to reduce the volume of the audio source as it moves away from the listener. Possible values are `"linear"`, `"inverse"` and `"exponential"`. The default value is `"inverse"`.

`PannerNode.maxDistance`

A double value representing the maximum distance between the audio source and the listener, after which the volume is not reduced any further.

`PannerNode.orientationX`

Represents the horizontal position of the audio source's vector in a right-hand Cartesian coordinate system. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 1.

`PannerNode.orientationY`

Represents the vertical position of the audio source's vector in a right-hand Cartesian coordinate system. The default is 0. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 0.

`PannerNode.orientationZ`

Represents the longitudinal (back and forth) position of the audio source's vector in a right-hand Cartesian coordinate system. The default is 0. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 0.

`PannerNode.panningModel`

An enumerated value determining which spatialization algorithm to use to position the audio in 3D space.

`PannerNode.positionX`

Represents the horizontal position of the audio in a right-hand Cartesian coordinate system. The default is 0. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 0.

`PannerNode.positionY`

Represents the vertical position of the audio in a right-hand Cartesian coordinate system. The default is 0. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 0.

`PannerNode.positionZ`

Represents the longitudinal (back and forth) position of the audio in a right-hand Cartesian coordinate system. The default is 0. While this `AudioParam` cannot be directly changed, its value can be altered using its `value` property. The default is value is 0.

`PannerNode.refDistance`

A double value representing the reference distance for reducing volume as the audio source moves further from the listener. For distances greater than this the volume will be reduced based on `rolloffFactor` and `distanceModel`.

`PannerNode.rolloffFactor`

A double value describing how quickly the volume is reduced as the source moves away from the listener. This value is used by all distance models.

Instance methods
----------------

*Inherits methods from its parent, `AudioNode`*.

`PannerNode.setPosition()` 
Deprecated

Defines the position of the audio source relative to the listener (represented by an `AudioListener` object stored in the `BaseAudioContext.listener` attribute.)

`PannerNode.setOrientation()` 
Deprecated

Defines the direction the audio source is playing in.

Examples
--------

See `BaseAudioContext.createPanner()` for example code.

Specifications
--------------

| Specification |
| --- |
| Web Audio API # PannerNode |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Using the Web Audio API