この素晴らしいオーディオ ビジュアライザーは、オーディオ データの分析に fft を使用する minim ライブラリを備えた Processing 2.0a5 で作成されています。
import ddf.minim.*;
import ddf.minim.analysis.*;
Minim minim;
AudioPlayer song;
FFT fft;
int col=0; // color, oscillates over time.
void setup()
{
size(498, 89);
// always start Minim first!
minim = new Minim(this);
// specify 512 for the length of the sample buffers
// the default buffer size is 1024
song = minim.loadFile("obedear.mp3", 2048);
song.play();
// an FFT needs to know how
// long the audio buffers it will be analyzing are
// and also needs to know
// the sample rate of the audio it is analyzing
fft = new FFT(song.bufferSize(), song.sampleRate());
}
void draw()
{
colorMode(HSB);
background(0);
// first perform a forward fft on one of song's buffers
// I'm using the mix buffer
// but you can use any one you like
fft.forward(song.mix);
col++;
if (255<col){col=0;} // loops the color
strokeWeight(8);
stroke(col, 255, 255);
// draw the spectrum as a series of vertical lines
// I multiple the value of getBand by 4
// so that we can see the lines better
for(int i = 0; i < fft.specSize(); i++)
{
line(i-160, height, i-160, height - fft.getBand(i)*2);
}
}
void stop()
{
song.close();
minim.stop();
super.stop();
}
だから今私がやりたいのは、soundcloud からのように、URL を介して曲のソースをインポートすることです。URLは、128 kbps mp3 ストリームを返すhttp://api.soundcloud.com/tracks/46893/stream?client_id=759a08f9fd8515cf34695bf3e714f74bのようになります。JMF 2.1 がストリーミング オーディオ用の URLDataSource をサポートしていることは知っていますが、JMF と processing/minim/fft がうまく連携するかどうかはわかりません。私はJavaに本当に慣れていないので、まだインとアウトに完全に慣れていません。私は本当にphpとhtmlに慣れています。また、Soundcloud の javascript SDK には、Soundmanager2 ストリーミングが統合されていることもわかりました。これが可能な統合ソリューションを提供するかどうかはわかりません。
理想的には、php と html を使用してサウンドクラウドの曲のリストをユーザーに提供し、クリックすると、自分のビジュアライザー、できれば処理中に作成したもので曲を再生したいと思います。私はこれを機能させるのに本当に苦労しています.Javaに関する私の無知は間違いなく役に立ちません. 可能であれば、これを実現するための最良の方法について何か提案はありますか?