Assignment: sound/LED controls

code here:

int state;
void setup(){
  pinMode(9, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(12, INPUT);
  state = 1;
  Serial.begin(9600);
}

void loop(){
  int pot = analogRead(A3);
  int photo = analogRead(A1);
  int potLight = map(pot, 0, 1024, 0, 255);
  int photoLight = map(photo, 0, 1024, 0, 255);
  int photoSpeaker = map(photo, 0, 1024, 500, 80);
  int potSpeaker = map(pot, 0, 1024, 80, 500);
  int potDelay = map(pot, 0, 1024, 0, 500);
  int photoDelay = map(photo, 0, 1024, 0, 500);
  
  boolean btnRead = debouncefunction(12);
  if(btnRead == true){
   btnRead = 0;
   delay(200);
   state += 1;
     if(state > 4){
       state = 1;
     } 
  }
    
  if(state == 1){
    //state one pot->LED, photosensor->speaker
    analogWrite(9, potLight);
    tone(2, photoSpeaker);
  }
  
  if(state == 2){
    //photoell->LED, pot->speaker
    analogWrite(9, photoLight);
    tone(2, potSpeaker);
  }
  
  if(state == 3){
    // photocell->LED/speaker, pot->speaker tone and led blink rate
    tone(2, potSpeaker);
    delay(photoDelay);
    noTone(2);
    delay(photoDelay);
    analogWrite(9, photoLight);
    delay(potDelay);
    analogWrite(9, 0);
    delay(potDelay);   
  }
  
  if(state == 4){
    analogWrite(9, photoLight);
    delay(photoDelay);
    analogWrite(9, 0);
    tone(2, potSpeaker);
    delay(photoDelay);
  }
 
  Serial.println(state);
}

int debouncedelay = 500;
boolean debouncefunction(int pin){
  boolean state;
  boolean previousState;
  
  previousState = digitalRead(pin);
  for(int counter =0; counter > debouncedelay; counter++){
    delay(1);
    state = digitalRead(pin); //readpin
      if(state != previousState)
      {counter = 0;
      previousState = state;
      }
  }
  return state;
}