Skip to content

aiwaka/3d-audio-playground

Repository files navigation

オーディオ遊び場

WebAudioAPIとかバイナリ読み込みとかで遊んでみる.

使い方

起動方法

  • クローンする.
  • このページfull.tar.Zに入っているfullディレクトリをaudioディレクトリの下に配置する.
  • 適当なステレオの短め(45秒未満)のmp3やwavを配置し, この行のパスをそれに合わせて変える(相対パスにすること).
  • yarn devを実行すると, TypescriptでソースをコンパイルしたのちにPython3を使ってローカルサーバーが立ち上がる.
  • localhost:8080にアクセスする.

アプリの使い方

convolutionのページのみ説明.

Elevation(仰角), Azimuth(方位角), Distance(音源と頭部の距離)を指定し, playボタンを押す. すると, 先程配置した効果音が頭部伝達関数によって空間配置されたように感じられる音になる. 当然だがイヤホンやヘッドホンを用いないと効果を実感できない(本来ならばイヤホン等の効果に対する逆フィルターも必要だが軽微な影響なので省略).

効果音をたくさん読み込むのも良くないので, 再生し終わるまでは新たに再生できないようにしている. コンソールに再生開始や終了のメッセージが表示されるのでそれを見ながら試していただきたい.

ファイルの説明

index

エントリーポイントであり, 各ページに移動するためのページ.

web-audio

Web Audio APIを試すためのページ.

hrtf

頭部伝達関数のバイナリ読み込みやcanvasによる描画のテストページ.

convolution

頭部伝達関数と効果音を畳み込んで3dオーディオを作成する処理を行う.

canvas.ts

hrtfページでのcanvas描画処理をまとめたモジュールファイル.

positioning.ts

convolutionページにおいてフォームなどのDOM操作を行う機能をまとめたモジュールファイル.

メモ

package.jsonに書いてあるとおりだが, yarn devとするとtscによって.tsがコンパイルされ, その後Pythonを用いたサーバーが立ち上がる. localhost:8080でサーバーにアクセス可能.

このサーバーでエラーが起こるとプロセスが終了せずにポートを専有される. こうなった場合,

  • ps -fA | grep python でプロセスIDを特定
  • kill ... でプロセス終了

を行う.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published