/* 
  PROCESSINGJS.COM - BASIC EXAMPLE
  Delayed Mouse Tracking  
  MIT License - Hyper-Metrix.com/F1LT3R
  
  Modified to add Pd audio by Chris McCormick, 25/05/2010.
  Modified to reduce clicking by Brandon James, 11/10/2010.
*/  

// Global variables
float radius = 50.0;
int X, Y;

// Setup the Processing Canvas
void setup(){
  size( 200, 200 );
  stroke(255); 
  strokeWeight( 10 );
  frameRate( 30 );
  X = width / 2;
  Y = width / 2;
  pd = new Pd(44100, 200);
  pd.load("patch.pd", pd.play);
}

// Main draw loop
void draw(){
  
  radius = radius + sin( frameCount / 4 );
  
  // Fill canvas grey
  background( 100 );
  
  //Color circle based on mouse position
  fill( 0, Y, X );
  
 
  
  // Draw circle
  ellipse( X, Y, radius, radius );                  
  
  pd.send("x1", X);
  pd.send("y1", Y);
  pd.send("radius", radius - 50);
}


// Set circle's next destination
void mouseMoved(){
  X = mouseX;
  Y = mouseY;  
}