116




import pitaru.sonia_v2_9.*;


Sample forwardTune;
Sample reverseTune;

boolean direction = true;

int numChecks = 1;
Check[] checks = new Check[numChecks];

void setup(){
size(70,70);

Sonia.start(this);
int x = 14;
int y = 14;
forwardTune = new Sample("noise14_rs.wav");
int dataLength = forwardTune.getNumFrames();

float[] forwardArray = new float[dataLength];
forwardTune.read(forwardArray);
float[]backwardArray = new float[dataLength];
backwardArray = reverse(forwardArray);

reverseTune = new Sample(dataLength);
reverseTune.write(backwardArray);
//forwardTune.play();
//forwardTune.repeat();
for(int i = 0; i < numChecks; i++){
checks[i] = new Check(x,y,40,color(0));
x+=25;
if(x > 80){
x = 14;
y += 25;
}
}
}

void draw(){
background(0);
for(int i = 0; i < numChecks; i++){
checks[i].display();
}
}

void mousePressed(){
for(int i =0; i < numChecks; i++){
checks[i].press(mouseX,mouseY);
}
}

void keyPressed(){
if(key=='s'){
//save("112.jpg");
}
}




class Check{
int x,y;
int size;
color baseGray;
boolean checked = false;

Check(int xp, int yp, int s, color b){
x = xp;
y = yp;
size = s;
baseGray = b;
}

void press(float mx, float my){
if((mx >= x)&&(mx <= x +size)&&(my >= y)&&(my <= y+size)){
checked = !checked;
if(checked == true){
forwardTune.play();
forwardTune.repeat();
}
else{
forwardTune.stop();
}
}
}

void display(){
stroke(255);
fill(baseGray,100);
rect(x,y,size,size);
if(checked == true){
line(x,y,x+size,y+size);
line(x+size,y,x,y+size);
noStroke();
fill(255);
}
}
}

コメント