aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/pannernode/index.html
blob: 7c3502a6ed90b1a854d4f0b2c5b2bddda6fc51b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
---
title: PannerNode
slug: Web/API/PannerNode
tags:
  - API
  - Interface
  - PannerNode
  - Reference
  - Web Audio API
translation_of: Web/API/PannerNode
---
<p>{{ APIRef("Web Audio API") }}</p>

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

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

<p><img alt="The PannerNode brings a spatial position and velocity and a directionality for a given signal." src="https://mdn.mozillademos.org/files/13815/WebAudioPannerNode.png" style="display: block; height: 225px; margin: 0px auto; width: 771px;"></p>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">入力数</th>
   <td><code>1</code></td>
  </tr>
  <tr>
   <th scope="row">出力数</th>
   <td><code>1</code></td>
  </tr>
  <tr>
   <th scope="row">チャンネルの数え方</th>
   <td><code>"clamped-max"</code></td>
  </tr>
  <tr>
   <th scope="row">チャンネル数</th>
   <td><code>2</code></td>
  </tr>
  <tr>
   <th scope="row">チャンネルの意味</th>
   <td><code>"speakers"</code></td>
  </tr>
 </tbody>
</table>

<h2 id="コンストラクター">コンストラクター</h2>

<dl>
 <dt>{{domxref("PannerNode.PannerNode")}}</dt>
 <dd>新しい <code>PannerNode</code> オブジェクトを作成します。</dd>
</dl>

<h2 id="Properties" name="Properties">属性</h2>

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

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

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

<h2 id="Methods" name="Methods">メソッド</h2>

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

<dl>
 <dt>{{domxref("PannerNode.setPosition()")}}</dt>
 <dd>聴取者に対する音源の相対位置を設定します。聴取者の位置は {{domxref("AudioContext.listener")}}  で参照される{{domxref("AudioListener")}} オブジェクトで表されています。</dd>
</dl>

<dl>
 <dt>{{domxref("PannerNode.setOrientation()")}}</dt>
 <dd>音源が再生されている方向を設定します。</dd>
</dl>

<dl>
 <dt>{{domxref("PannerNode.setVelocity()")}} {{obsolete_inline}}</dt>
 <dd>音源の速度を表したベクトルです。移動する速さと方向を表しています。以前の仕様では下流に接続された{{domxref("AudioBufferSourceNode")}} のピッチを上げ下げするために、{{domxref("PannerNode")}} は速度を表す属性を持っていました。この機能は明瞭に定義されておらず、問題も多かったため、現在の仕様からは削除されています。</dd>
</dl>

<h2 id="Examples" name="Examples"></h2>

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

<h2 id="Specifications" name="Specifications">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様</th>
   <th scope="col">状況</th>
   <th scope="col">コメント</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Audio API', '#the-pannernode-interface', 'PannerNode')}}</td>
   <td>{{Spec2('Web Audio API')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>

<div>


<p>{{Compat("api.PannerNode")}}</p>
</div>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/ja/docs/Web_Audio_API/Using_Web_Audio_API">Using the Web Audio API</a></li>
</ul>