hola, soy nueva con processing, y queria lograr sincronizar mi sketh con el audio, especificamente la parte donde surgen las montañas y que crezcan sincronizadamente con el audio.
Para entender lo del audio, use el ejemplo “PlayAFile” de la libreria.
Si alguno podria ayudarme y resolverlo, se lo agradeceria.
Este es mi codigo, que lo segui en base a este video: https://www.youtube.com/watch?v=IKB1hWWedMk
//dibujo
int cols,rows;
int scl = 20;
int w= 2000;
int h= 1600;
//vuelo
float terrain [][] ;
float flying = 0;
//musica
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
size(500,500, P3D);
cols = w/scl;
rows = h/scl;
terrain = new float[cols][rows];
minim = new Minim(this);
player = minim.loadFile("when i was your man audio editado.mp3");
}
void draw(){
player.play();
background(0);
stroke(255);
noFill();
//posicion dibujo
translate(width/2,height/2+50);
rotateX(PI/3);
translate(-w/2, -h/2);
frameRate(1);
flying -= 0.2;
float yoff = flying;
for (int y = 0; y < rows; y++){
float xoff = 0;
for(int x= 0; x < cols; x++){
terrain [x][y] = map(noise (xoff, yoff),0,1,-100, 100);
xoff += 0.2;
}
yoff += 0.2;
}
for (int y = 0; y < rows-1; y++){
beginShape(TRIANGLE_STRIP);
for(int x= 0; x < cols; x++){
vertex(x*scl, y*scl, terrain[x][y]);
vertex(x*scl, (y+1)*scl, terrain [x][y+1]);
//rect(x*scl,y*scl,scl,scl);
}
endShape();
}
}
acá les comparto el ejemplo “PlayAFile”:
/**
* This sketch demonstrates how to play a file with Minim using an AudioPlayer. <br />
* It's also a good example of how to draw the waveform of the audio. Full documentation
* for AudioPlayer can be found at http://code.compartmental.net/minim/audioplayer_class_audioplayer.html
* <p>
* For more information about Minim and additional features,
* visit http://code.compartmental.net/minim/
*/
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup()
{
size(512, 200, P3D);
// we pass this to Minim so that it can load files from the data directory
minim = new Minim(this);
// loadFile will look in all the same places as loadImage does.
// this means you can find files that are in the data folder and the
// sketch folder. you can also pass an absolute path, or a URL.
player = minim.loadFile("when i was your man audio editado.mp3");
}
void draw()
{
background(0);
stroke(255);
// draw the waveforms
// the values returned by left.get() and right.get() will be between -1 and 1,
// so we need to scale them up to see the waveform
// note that if the file is MONO, left.get() and right.get() will return the same value
for(int i = 0; i < player.bufferSize() - 1; i++)
{
float x1 = map( i, 0, player.bufferSize(), 0, width );
float x2 = map( i+1, 0, player.bufferSize(), 0, width );
line( x1, 50 + player.left.get(i)*50, x2, 50 + player.left.get(i+1)*50 );
//line( x1, 150 + player.right.get(i)*50, x2, 150 + player.right.get(i+1)*50 );
}
// draw a line to show where in the song playback is currently located
// float posx = map(player.position(), 0, player.length(), 0, width);
// stroke(0,200,0);
//line(posx, 0, posx, height);
if ( player.isPlaying() )
{
text("Press any key to pause playback.", 10, 20 );
}
else
{
text("Press any key to start playback.", 10, 20 );
}
}
void keyPressed()
{
if ( player.isPlaying() )
{
player.pause();
}
// if the player is at the end of the file,
// we have to rewind it before telling it to play again
else if ( player.position() == player.length() )
{
player.rewind();
player.play();
}
else
{
player.play();
}
}
Gracias!