シネマVR & 3D高音質補正 by haruu
本スクリプトは、Web Audio APIを使用してWebページ上のメディア音声に3D空間定位(HRTF)やイコライザー、コンプレッサー処理を施すバックグラウンド処理コードです。ポップアップ画面やストレージの設定変更と連動し、ノーマル、ASMR、シアター、ピンポイントといったモードに応じた音響バランスを自動調整。DOMの変化を監視して新規に読み込まれた動画や音声にも自動でエフェクトを適用し、臨場感あふれるサウンド体験を提供します。注意スペックが低いPCで裏で再生すると音がかくつく可能性があります
Extension Metadata
Screenshots
About this extension
このスクリプトは、拡張機能の「コンテンツスクリプト」として動作し、主に以下の仕組みと機能で構成されています。
1. 多重実行の防止と初期化
多重起動ガード: window.hasAudioEnhancerRunningフラグを用い、同じタブ内でスクリプトが複数回実行されるのを防ぎます。
ストレージ連携: 拡張機能のストレージ(storage.local)からユーザーの設定値(モード、音の深さ、低音・高音の強さ、VR位置など)を非同期で読み込み、初期値を決定します。
Web Audio APIを駆使して、音声データに対して以下のフィルターやエフェクトを順番に接続(ルーティング)しています。
BiquadFilter(イコライザー):
低音(Bass): lowshelfフィルターで低音域(140Hz以下)を調整。
中音(Mid): peakingフィルター(2200Hz)でボーカルの聴き取りやすさをブースト。
高音(Treble): highshelfフィルター(6000Hz)で抜けの良い高音を調整。
DynamicsCompressor(コンプレッサー): 音割れや急な大音量を防ぎ、全体の音量を均一に整えます。
Panner(3D空間定位): HRTF(頭部伝達関数)モデルを使用し、画面上の動画・音声要素の位置やユーザーの指定した座標(VR空間内)に合わせて、音が立体的に聴こえるよう座標をリアルタイムで計算・変更します。
GainNode(音量調整): モードごとの音量バランスやリバーブ感の調整を行います。
applyModeSettingsToElement 関数により、選択されているモードに応じて各パラメータが動的に切り替わります。
Normal : 標準的な立体音響とバランスの良いイコライジング。
Pin:アドオンが作動してるかPInで試すことができます。
ASMR: 音割れを防ぎつつ、微細な音が引き立つようにコンプレッサーやフィルターを最適化。
Theater: 映画館のような奥行きと、広がりのあるサラウンド感を演出。
1. 多重実行の防止と初期化
多重起動ガード: window.hasAudioEnhancerRunningフラグを用い、同じタブ内でスクリプトが複数回実行されるのを防ぎます。
ストレージ連携: 拡張機能のストレージ(storage.local)からユーザーの設定値(モード、音の深さ、低音・高音の強さ、VR位置など)を非同期で読み込み、初期値を決定します。
AudioContext と音声エフェクトチェーン
Web Audio APIを駆使して、音声データに対して以下のフィルターやエフェクトを順番に接続(ルーティング)しています。
BiquadFilter(イコライザー):
低音(Bass): lowshelfフィルターで低音域(140Hz以下)を調整。
中音(Mid): peakingフィルター(2200Hz)でボーカルの聴き取りやすさをブースト。
高音(Treble): highshelfフィルター(6000Hz)で抜けの良い高音を調整。
DynamicsCompressor(コンプレッサー): 音割れや急な大音量を防ぎ、全体の音量を均一に整えます。
Panner(3D空間定位): HRTF(頭部伝達関数)モデルを使用し、画面上の動画・音声要素の位置やユーザーの指定した座標(VR空間内)に合わせて、音が立体的に聴こえるよう座標をリアルタイムで計算・変更します。
GainNode(音量調整): モードごとの音量バランスやリバーブ感の調整を行います。
モード別の音響プリセット
applyModeSettingsToElement 関数により、選択されているモードに応じて各パラメータが動的に切り替わります。
Normal : 標準的な立体音響とバランスの良いイコライジング。
Pin:アドオンが作動してるかPInで試すことができます。
ASMR: 音割れを防ぎつつ、微細な音が引き立つようにコンプレッサーやフィルターを最適化。
Theater: 映画館のような奥行きと、広がりのあるサラウンド感を演出。
リアルタイム監視と同期
DOM監視: MutationObserver と定期的なタイマー(setInterval)を併用し、後から動的に追加された動画や音声要素(YouTubeや各種配信サイトのプレイヤーなど)も漏れなくキャッチしてエフェクトを自動適用します。
フレーム単位の座標更新: requestAnimationFrame を利用して、ページ上の要素の位置変化やピン留め座標に合わせた3D音響のリスナー・ソース位置を滑らかに追従させます。
設定・メッセージ監視: ポップアップなどから送られてくるストレージの変更 (storage.onChanged) やランタイムメッセージ (runtime.onMessage) をリアルタイムで受け取り、ページをリロードすることなく即座に音質やモードを反映します。
Rated 0 by 0 reviewers
Permissions and data
Required permissions:
- Access your data for all websites
Optional permissions:
- Access your data for all websites
Data collection:
- The developer says this extension doesn't require data collection.
More information
- Add-on Links
- Version
- 1.3
- Size
- 404.1 KB
- Last updated
- 3 days ago (Aug 20, 2026)
- Related Categories
- License
- All Rights Reserved
- Version History
- Add to collection