Аналіз звуку
Аудіо-вміст, який відтворюється плеєром, можна аналізувати, визначаючи його характеристики. Для цього слід увімкнути режим аналізу:
player.setAnalysing(true);
//у процедурі draw
float power = player.getAveragePower();
background(0);
player.play();
fill (power*255,0,0);
rect(0,0, power*width, height);
Ці команди зображатимуть прямокутник, ширина та колір якого визначаються звуковим супроводом, а точніше - його гучністю.
Для того, щоб явніше бачити різницю, варто додати множник fill (power*255*2,0,0);
За допомогою масиву spec можна представити звуковий файл як множину окремих значень гучностей:
// оголошення даних
float [] spec
// у процедурі setup ()
player.setAnalysing(true);
// у процедурі draw(): якщо є звук, то малюється прямокутник відповідного розміру та кольору
spec =player.getPowerSpectrum();
if (spec!=null) {
for (int i=0; i<spec.length; i++) {
fill(0,255,255*spec[i]);
rect(0,i,spec[i]*width,2);
}
}
Команди нижче перетворюють прямокутники на групу точок:
strokeWeight(4);
stroke(255*spec[i]);
point(xPos,i);
xPos+=4;
На даний момент точки малюються по ширині екрану, щоб цей процес продовжувався, потрібно передбачити очищення екрану після його заповнення:
if (xPos>width){
xPos=0;
background(0);
}