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との違い
| 項目 | StereoPannerNode | PannerNode |
|---|---|---|
| 空間 | 左右1次元 | 3D空間 |
| CPU負荷 | 低い | 高い(HRTF時) |
| 用途 | 会議・楽器・ゲーム2D | VR/3Dゲーム |
Baseline Widely available
MDN記載: StereoPannerNodeは2021年4月以降、全主要ブラウザ(Chrome/Edge/Firefox/Safari/iOS/Android Chrome)で実装され、Baseline Widely availableに分類されています。互換性の心配なく本番利用可能です。
関連
- ・スピーカーテスト本体: 実際にStereoPannerNodeを動かして確認
- ・マイクテスト: Media Capture APIを使用