/*************************************************************************
 "Notes Pad"
 A very basic synth using the WebPd sound engine and Processing.js
 -Brandon James 2010
*************************************************************************/


// Global variables
int bottom, xpos, zone;

// Setup the Processing Canvas
void setup(){
  size( 400, 200 );
  fill(#990000);
  pd = new Pd(44100, 4410);
  pd.load("notespad.pd", pd.play);
}

// Main draw loop
void draw(){
  background(127);
  stroke(255);
  
  //draw grid
  line(0, height*.5, width, height*.5);
  line(width*.25, 0, width*.25, height);
  line(width*.5, 0, width*.5, height);
  line(width*.75, 0, width*.75, height);  
 
  //1 if mouse is over bottom row
  bottom = (mouseY < (height/2) ? 1 : 0);
  
  //detect horizontal position
  if (mouseX < width*.25){
    xpos = 1;
  }else if(mouseX < width*.5){
    xpos = 2;
  }else if(mouseX < width*.75){
    xpos = 3;
  }else if(mouseX < width){
    xpos = 4;
  }
  
  //draw circle over selected zone
  stroke(0);
  ellipseMode(CENTER);
  ellipse(((xpos-1)*(width/4))+(width/8),((1-bottom)*100)+(height/4),width*.05,height*.1);
  
  zone = (((1-bottom)*4)+xpos);  
}



void mousePressed(){
  //send note to PD patch
  pd.send("note", zone);
}