CDJ
昨日一日中javaやってたかいありかなり理解が深まった。
まず発表用にmegの甘い贅沢の曲を使おうと思いいつものごとくSoundEngineで曲の軽量化
またいつもの
OutOfMemoryError
ビットは8ビット周波数は11025か22050くらいが目安。
Portが使えなかったのはPC側でサウンド再生ポートが決められてるからな気がする。
init()というメソッドをWaveEngineでつくったが置く位置がかなりシビア。
昨日System.out.println()を途中に入れたら再生できるようになったりといまいち安定しない。
あとSampleRate変更にはFloatControl.Typeを使うのが一番望ましいが、使えない。何がunsupportedやねん。
FloatControl.Typeのメソッドの中にも使えるのと使えないのがあってなぞ。
MASTER_GAINはボリュームが変えられる。
BLANCEは左右のスピーカーの出力強度を指定できる。
FloatControl.Type.SAMPLE_RATEが使えないので1スレごとに回転を見てそれにあったサンプリングレートを再生という手法に変更。
やってみたがやはり微妙。
bytesを低くして感度を上げると再生がとぎれとぎれになってしまう。
あと複数のformatを用意していればLineは一つでいい。
line.open(format);
でformatのみを変更して開いてスタートすればいい。
逆再生に関しては順再生用のDataClipと逆再生用のDataClip2を用意。
しかしDataClip2を再生してくれない
なぜだかわからんが
AudioInputStream ais = AudioSystem.getAudioInputStream(url); AudioInputStream ais2 = AudioSystem.getAudioInputStream(url); DataClip clip = new DataClip(ais); DataClip clip2 = new DataClip2(ais2);
とAudioInputStreamのインスタンス(?)を二つ作れば再生してくれた。
結局同じサウンドデータの読み込みだからais一つで十分だと思ったがなんででしょうね。
とりあえずこれで一応目標達成かな。
MASTER_GAINを操作するミキサーみたいな画像いれてマウスで操作しようと思ったがレコードの回転が画面全体っぽかったので
めんどくさかったからやめた。