   Serial.println("Playing");
 
   m1Servo.attach(servoPinM1);
+  m2Servo.attach(servoPinM2);
+  m3Servo.attach(servoPinM3);
+  m4Servo.attach(servoPinM4);
+  
   while (digitalRead(playButtonPin)) {    
     uint8_t x = EEPROM.read(addr);
-    if ((addr % 3) == 0){
+    if ((addr % 4) == 0){
       Serial.print("Read M1: "); Serial.print(x);
       if (x == 255) break;
       // map to 0-180 degrees
       x = map(x, 0, 254, 0, 180);
       Serial.print(" -> "); Serial.println(x);
       m1Servo.write(x);
+    }
+    if ((addr % 4) == 1){
+      Serial.print("Read M2: "); Serial.print(x);
+      if (x == 255) break;
+      // map to 0-180 degrees
+      x = map(x, 0, 254, 0, 180);
+      Serial.print(" -> "); Serial.println(x);
+      m2Servo.write(x);
+    }
+    if ((addr % 4) == 2){
+      Serial.print("Read M3: "); Serial.print(x);
+      if (x == 255) break;
+      // map to 0-180 degrees
+      x = map(x, 0, 254, 0, 180);
+      Serial.print(" -> "); Serial.println(x);
+      m3Servo.write(x);
+    }
+    if ((addr % 4) == 3){
+      Serial.print("Read M4: "); Serial.print(x);
+      if (x == 255) break;
+      // map to 0-180 degrees
+      x = map(x, 0, 254, 0, 180);
+      Serial.print(" -> "); Serial.println(x);
+      m4Servo.write(x);
     }
     delay(SAMPLE_DELAY);
     

  //       make a buffer where it can be loaded dynamically from host computer (Raspi)
}

/*
void Seek(Servo servo, int analogPin, int pos)
{
  // Start the move...
  servo.write(pos);
  
  // Calculate the target feedback value for the final position
  int target = map(pos, minDegrees, maxDegrees, minFeedback, maxFeedback); 
  
  // Wait until it reaches the target
  while(abs(analogRead(analogPin) - target) > tolerance){} // wait...
}

int getPos(int analogPin)
{
  return map(analogRead(analogPin), minFeedback, maxFeedback, minDegrees, maxDegrees);
}
*/

  }
  Serial.println("Done");
  m1Servo.detach();
  m2Servo.detach();
  m3Servo.detach();
  m4Servo.detach();
  delay(250);  
}

