Post date: Apr 19, 2014 5:11:56 AM
ちょっと調べていたらこんなサイトがヒットした.
これを使えばjavaで立体音響ができるらしい.でもjava3Dとか使いたくなかったのでもっと調べてみると,
パイプ処理で使える3DSoundSimulatorなるものがあるらしい.
パイプ処理をするのにいちいちjarまたはexe化してバッチファイルを叩くのもそろそろ面倒になったので,
processing(java)からパイプ処理を行えるようにライブラリを作成した.
中でやってるのはoutputstreamを拾ってきて文字列を送ってるだけ.
とりあえずサンプルソース
//import awav.*; //多分いらない?
Awav awav;
void setup() {
size(640, 480);
awav=new Awav("C:\\Dropbox\\processing\\Other\\s3d\\3DSoundSimulator.jar", dataPath("test.wav")); //この行を変更して!!
}
void draw() {
background(0);
awav.setSrcPos((mouseX-width/2)*0.01, 0, (-mouseY+height/2)*0.01);
ellipse(mouseX, mouseY, 30, 30);
}
Awavクラスの使い方
コンストラクタ:Awav( String [シミュレータ本体の絶対パス] , String [再生するwavファイルの絶対パス dataPathとか使うと楽]) シミュレータの用意と再生
その他:setSrcPos(double x,double y,double z); 音源の移動
これだけ
バッチファイルを叩いてやる所をただ単にprocessing実行時に出来るようにしただけなのでwavファイル以外の再生や音声の一時停止などは出来ない.
なぜかシミュレータのロードに失敗するディレクトリがあったのでやむなく引数で指定するようにした.