2011年4月4日月曜日

反射音をシミュレーションする面白い研究


反射音をリアルタイムで再現する研究の動画がありました。
FDTD法を使って事前にインパルス応答のシミュレーションをして反射音の特徴を計算しておいて、実際にリアルタイムで反射音を再現する際はその特徴データを使うような感じっぽいです。

2011年3月27日日曜日

VSTプラグインを作ってみました

 jVSTwRapperを利用してVSTプラグインを作ってみた結果、動作が確認できましたので近々公開します。





残念ながらドップラー効果をjVSTwRapperの仕様にあわせる上手い方法が思いつかず、実装することができませんでしたが、その他の部分は自分がチェックした限りではしっかり動いていると思います。。。


2010年9月19日日曜日

3DSoundSimulator公開

3DSoundSimulatorを公開しました。
ダウンロードはこちらのページから3DSoundSimulator.zipをどうぞ。

コマンドライン前提というユーザーそっちのけな作りをしておりますが、ウィンドウから操作するGUIもオマケでつけておきましたのでそれでご容赦ください。
コマンドライン使うと「パイプで他のソフトと接続して標準入出力で操作する」みたいなことができる利点があるので、こういう仕組みになっております。
もろもろ、詳しくは付属の説明書に書いておきましたのでご一読ください。


以上です。


AudioInputStream3D更新

ライブラリAudioInputStream3Dを更新しました。
変更の内容は下記の通りです。
  • Airクラス、AirDiffuseDeformerクラスをJIS Z 8738にほぼ完全に準拠するように変更
以前はAirDiffuseDeformerで距離を計算に入れる際に若干数字をいじって調整していたのですが、今回の更新でAirクラスを全面的に書き直し、空気による音の減衰量を計算する式の係数の計算法を変えました。
結果、「ほぼ」完全にJIS Z 8738に準拠するようになっている(はず)です。

「ほぼ」のほぼ部分は、

(減衰後の音量) = (減衰前の音量) × exp(-0.1151 × (減衰係数) × (距離))

ではなく、

(減衰後の音量) = (減衰前の音量) × exp(-0.1151 × (減衰係数) × (距離)) ÷ (距離)

 となっている所です。
 元の式をさらに距離で割っているため、減衰量が元よりも大きくなっています。

 また、前回のエントリで近々新しいソフトを出す、と言っていた件ですが、自分にとって都合の良い作り方をしすぎたため、説明がないと使い方がわからないソフトになってしまいました。
オマケの付属品や説明書を作るのに手間取っておりましたが、一応これで良いかな、という程度にはなりましたので、今日明日中には公開できるのではないかと思います。 (追. 公開しました。)


以上です。


2010年9月10日金曜日

AudioInputStream3Dを更新しました

立体音化ライブラリAudioInputStream3Dを変更しました。
変更の内容は下記の通りです。
  • クラスAudioInputStream3Dに現在使用中のHRTFデータを返すgetHRTF()メソッドを追加
  • デフォルトで使用する頭部伝達関数をこちらの頭部伝達関数データベースから計算したものに変更
 以上です。

また、近々新しいソフトを公開すると思います。

2010年8月22日日曜日

バグのお知らせ

ライブラリAudioInputStream3Dの左チャンネルの畳み込みの計算で、パワースペクトルを位相にも使ってしまうバグがありました。

具体的には、SimulationStrategy.javaの212行目で引数の指定を間違っており、下記のとおり修正を行いました。
 

208 hrtfConvolution.setCoefficient(
209     data.getRight().getPowerRatio(),
210     data.getRight().getPhaseDifference(),
211     data.getLeft().getPowerRatio(),
212     data.getLeft().getPowerRatio()); ←誤

208 hrtfConvolution.setCoefficient(
209     data.getRight().getPowerRatio(),
210     data.getRight().getPhaseDifference(),
211     data.getLeft().getPowerRatio(),
212     data.getLeft().getPhaseDifference()); ←正

 修正後コンパイル済みのものをコチラにアップロードしましたので、現在利用されている方は改めてダウンロードをお願いします。
また、3DAudio4MMDを利用されている方は以下の手順で修正が可能です
  1. AudioInputStream3D.zipをダウンロードする
  2. 解凍して出てきた『AudioInputStream3D.jar』を『(プログラムをおいてあるフォルダ)\MMDのデータに基づいて立体音化するソフト\lib』へ移動する
 この作業で当初付属していたAudioInputStream3D.jarは上書きされます。
何らかの理由でバグ版を保存しておきたい場合はバックアップを取っておくと良いと思います。
 以上、取り急ぎのご連絡でした。