--- title: PannerNode slug: Web/API/PannerNode tags: - API - Interface - PannerNode - Reference - Web Audio API translation_of: Web/API/PannerNode ---

{{ APIRef("Web Audio API") }}

PannerNode は音源の空間上の位置と振る舞いを表現したインターフェイスで、{{domxref("AudioNode")}} の一種です。右手直交座標系に従って位置を表し、音源の動きは速度ベクトルと、向きを表すサウンドコーンを利用して表現します。

PannerNode は必ず 1 つの入力と、1 つの出力を持ちます。入力はモノラルでもステレオでも構いませんが、出力は必ずステレオとなります。つまりパンニングを行うには最低でも 2 チャンネルの音声チャンネルを必要です。

The PannerNode brings a spatial position and velocity and a directionality for a given signal.

入力数 1
出力数 1
チャンネルの数え方 "clamped-max"
チャンネル数 2
チャンネルの意味 "speakers"

コンストラクター

{{domxref("PannerNode.PannerNode")}}
新しい PannerNode オブジェクトを作成します。

属性

親クラスである {{domxref("AudioNode")}} の属性を継承しています。

向きと位置の設定と取得は異なる方法で行います。これは、これらの値が {{domxref("AudioParam")}} として保存されてるためです。値の取得は  PannerNode.positionX のように行えますが、同じ属性に対して値を設定するには PannerNode.positionX.value のように行います。そのため、これらの値は、WebIDL にあるように、読み取り専用とは定義されていません。

{{domxref("PannerNode.coneInnerAngle")}}
音量が低減しない範囲を内側にもつコーンの角度が、実数値 (倍精度) で参照できます。
{{domxref("PannerNode.coneOuterAngle")}}
音量が一定値まで低減される範囲を外側に持つコーンの角度が、実数値 (倍精度) で参照できます。低減は  coneOuterGain 属性の値に従います。
{{domxref("PannerNode.coneOuterGain")}}
coneOuterAngle の外で行われる音量の低減量を定義します。標準値は 0 で、これは音が聞こえなくなることを表します。
{{domxref("PannerNode.distanceModel")}}
音量の低減計算に用いるアルゴリズムを定めます。アルゴリズムは定められたものの中から選択します。とりうる値は "linear""inverse""exponential"で、デフォルト値は "inverse"です。
{{domxref("PannerNode.maxDistance")}}
音源と聴取者の最大距離を定義します。これを超えた場合、音量の低減計算がなされません。
{{domxref("PannerNode.orientationX")}}
右手直交座標系における音源の向きを表すベクトルのうち、水平方向の値です。{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 1 となっています。
{{domxref("PannerNode.orientationY")}}
右手直交座標系における音源の向きを表すベクトルのうち、垂直方向の値です。{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 0 となっています。
{{domxref("PannerNode.orientationZ")}}
右手直交座標系における音源の向きを表すベクトルのうち、奥行き(前後)方向の値です{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 0 となっています。
{{domxref("PannerNode.panningModel")}}

立体音響計算を行うアルゴリズムを定めます。アルゴリズムは定められたものの中から選びます。

{{domxref("PannerNode.positionX")}}
右手直交座標系における音源の位置を表すベクトルのうち、水平方向の値です{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 0 となっています。
{{domxref("PannerNode.positionY")}}
右手直交座標系における音源の位置を表すベクトルのうち、垂直方向の値です{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 0 となっています。
{{domxref("PannerNode.positionZ")}}
右手直交座標系における音源の位置を表すベクトルのうち、奥行き(前後)方向の値です{{domxref("AudioParam")}} は直接変更できないため、値の変更は{{domxref("AudioParam.value", "value")}} 属性を通して行います。初期値は 0 となっています。
{{domxref("PannerNode.refDistance")}}
音量の低減計算に用いる基準距離を表します。音源と聴取者との距離がこれを超えた場合、rolloffFactordistanceModel に基づいて音量の低減が起きます。
{{domxref("PannerNode.rolloffFactor")}}
音源が聴取者から離れていく際に起きる音量の低減量を定めます。この値は、全ての距離モデルで利用されます。

メソッド

親クラスである {{domxref("AudioNode")}} のメソッドを継承しています。

{{domxref("PannerNode.setPosition()")}}
聴取者に対する音源の相対位置を設定します。聴取者の位置は {{domxref("AudioContext.listener")}}  で参照される{{domxref("AudioListener")}} オブジェクトで表されています。
{{domxref("PannerNode.setOrientation()")}}
音源が再生されている方向を設定します。
{{domxref("PannerNode.setVelocity()")}} {{obsolete_inline}}
音源の速度を表したベクトルです。移動する速さと方向を表しています。以前の仕様では下流に接続された{{domxref("AudioBufferSourceNode")}} のピッチを上げ下げするために、{{domxref("PannerNode")}} は速度を表す属性を持っていました。この機能は明瞭に定義されておらず、問題も多かったため、現在の仕様からは削除されています。

{{page("/ja/docs/Web/API/AudioContext.createPanner","Example")}}

仕様

仕様 状況 コメント
{{SpecName('Web Audio API', '#the-pannernode-interface', 'PannerNode')}} {{Spec2('Web Audio API')}}

ブラウザー実装状況

{{Compat("api.PannerNode")}}

関連情報