2012-05-13 14 views
2

У меня есть этот удивительный аудио-визуализатор, созданный с помощью Processing 2.0a5 с библиотекой minim, которая использует fft для анализа аудиоданных.JMF with Processing - аудио визуализатор

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(); 
} 

Итак, теперь я хотел бы импортировать источник песни через URL-адрес, например, сказать soundcloud. URL-адрес может выглядеть примерно так: http://api.soundcloud.com/tracks/46893/stream?client_id=759a08f9fd8515cf34695bf3e714f74b, который возвращает 128-килобайтный mp3-поток. Я знаю, что JMF 2.1 поддерживает URLDataSource для потоковой передачи звука, но я не уверен, что JMF и обработка/minim/fft будут хорошо сочетаться. Я действительно новичок в java и до сих пор не полностью знаком с вставками. Я привык к php и html. Я также видел, что Soundcloud имеет потоковое интегрирование Soundmanager2 в своем javascript SDK. Не уверен, что это предложит любые возможные интеграционные решения.

В идеале я хотел бы передать список песен soundcloud пользователю с php и html, и по щелчку, я хотел бы воспроизвести песню с помощью своего собственного визуализатора, желательно того, который я создал в процессе обработки. У меня очень трудное время, пытаясь заставить это работать, и мое незнание с java определенно не помогает. Любые предложения по наилучшему способу сделать это, если это вообще возможно?

+1

Holy sh @ t! Загружаемый файл Minim принимает прямые URL-адреса, например, тот, который я опубликовал выше как параметр имени файла! Я нашел ответ здесь: http://code.compartmental.net/tools/minim/manual-minim/ Было так много разных ссылок документации. Думаю, я пропустил «руководство». Во всяком случае, это потрясающе. Если кому-то нужен классный аудиопроигрыватель и визуализатор на основе Java, не стесняйтесь красть мой (в основном, открыто использовать код в любом случае). –

ответ

1

Holy sh @ t! Загружаемый файл Minim принимает прямые URL-адреса, например, тот, который я опубликовал выше как параметр имени файла! Я нашел ответ здесь: code.compartmental.net/tools/minim/manual-minim Было так много разных ссылок документации. Думаю, я пропустил «руководство». Во всяком случае, это потрясающе. Если кому-то нужен классный аудиопроигрыватель и визуализатор на основе Java, не стесняйтесь красть мой (в основном, открыто использовать код в любом случае).

+0

Спасибо, я использовал ваш код в качестве базы для своего собственного визуализатора звука! – Agargara