WebAudioAPIとかバイナリ読み込みとかで遊んでみる.
- クローンする.
- このページの
full.tar.Z
に入っているfull
ディレクトリをaudio
ディレクトリの下に配置する. - 適当なステレオの短め(45秒未満)のmp3やwavを配置し, この行のパスをそれに合わせて変える(相対パスにすること).
yarn dev
を実行すると, TypescriptでソースをコンパイルしたのちにPython3を使ってローカルサーバーが立ち上がる.localhost:8080
にアクセスする.
convolutionのページのみ説明.
Elevation(仰角), Azimuth(方位角), Distance(音源と頭部の距離)を指定し, playボタンを押す. すると, 先程配置した効果音が頭部伝達関数によって空間配置されたように感じられる音になる. 当然だがイヤホンやヘッドホンを用いないと効果を実感できない(本来ならばイヤホン等の効果に対する逆フィルターも必要だが軽微な影響なので省略).
効果音をたくさん読み込むのも良くないので, 再生し終わるまでは新たに再生できないようにしている. コンソールに再生開始や終了のメッセージが表示されるのでそれを見ながら試していただきたい.
エントリーポイントであり, 各ページに移動するためのページ.
Web Audio APIを試すためのページ.
頭部伝達関数のバイナリ読み込みやcanvasによる描画のテストページ.
頭部伝達関数と効果音を畳み込んで3dオーディオを作成する処理を行う.
hrtfページでのcanvas描画処理をまとめたモジュールファイル.
convolutionページにおいてフォームなどのDOM操作を行う機能をまとめたモジュールファイル.
package.json
に書いてあるとおりだが, yarn dev
とするとtsc
によって.ts
がコンパイルされ, その後Pythonを用いたサーバーが立ち上がる.
localhost:8080
でサーバーにアクセス可能.
このサーバーでエラーが起こるとプロセスが終了せずにポートを専有される. こうなった場合,
ps -fA | grep python
でプロセスIDを特定kill ...
でプロセス終了
を行う.