2010年9月19日日曜日

AudioInputStream3D更新

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

「ほぼ」のほぼ部分は、

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

ではなく、

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

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

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


以上です。



 以前のAirクラスのクソソースぶりは自分でもイライラするくらいのレベルだったので、今回ガバッと全部書き直しました。

JISの「わしが数式じゃ」みたいな数式

 Air.javaを見るたびに「なんでこんなグチャグチャに書いちゃったんだろう」と思っていたのですが、今回改めて数式を読み直して「ああ、これに気力を吸い取られたのだな」と合点がいきました。

 まあ、気力を吸い取る非情の数式との格闘はなんとか無事に終了しました。
気温、湿度、気圧のパラメータを設定できる便利なクラスになってますので、ありえない数値をいれてみたりして遊ぶことができます。
…が、今のところ公開しているプログラムにはそういうパラメータを弄るインターフェースがなかったような。

0 件のコメント:

コメントを投稿