手軽屋
ツール一覧

Web Audio API StereoPannerNodeのpanアルゴリズム解説: 等パワーパンニングの仕組み

スピーカーテストツールの中核で使われているStereoPannerNodeの仕様を、技術仕様書ベースで整理します。

StereoPannerNodeとは

音源を左右ステレオ空間内で「振る(panする)」ためのWeb Audio APIノードです。pan値は-1(完全に左)+1(完全に右)の範囲で、0がセンター。

PannerNode(3D空間音響)と異なり、純粋に左右2chの音量配分だけを扱うシンプルな構造で、CPU負荷が低くWeb会議・ゲーム・楽器アプリで広く使われます。

等パワーパンニングアルゴリズム

StereoPannerNodeが採用するequal-power panningは、左右どの位置にpanしても全体の音圧が一定に保たれる方式です。素朴な線形配分だとセンターで音が小さくなる「センター落ち」が起きるため、三角関数で補正されています。

モノラル入力時の数式(簡略):

x = (pan + 1) / 2 * π/2
gainL = cos(x)
gainR = sin(x)

pan=0時に cos(π/4) = sin(π/4) ≈ 0.707 となり、左右に同音量が配分されます。線形配分の0.5に対して約3dB高くなり、これがセンター落ちを防ぐ仕組みです。

channelCountMode = "clamped-max" の意味

StereoPannerNodeのデフォルトは channelCountMode: "clamped-max"。入力チャンネル数を最大2chに制限します。5.1chの入力が来ても勝手にステレオへダウンミックスせず、上限2chでクランプ。

channelInterpretation: "speakers" はチャンネルを「左右スピーカー」として解釈し、特殊な空間処理(PannerNodeのHRTF等)は適用しません。

PannerNodeとの違い

項目StereoPannerNodePannerNode
空間左右1次元3D空間
CPU負荷低い高い(HRTF時)
用途会議・楽器・ゲーム2DVR/3Dゲーム

Baseline Widely available

MDN記載: StereoPannerNodeは2021年4月以降、全主要ブラウザ(Chrome/Edge/Firefox/Safari/iOS/Android Chrome)で実装され、Baseline Widely availableに分類されています。互換性の心配なく本番利用可能です。

関連