         //Log.Init(9600, gLogLevel);
         static const  char* levelStrings[]  = {"DISABLED","VERBOSE", "DEBUG", "INFO", "ERROR"};
         Serial.print("Log level is "); Serial.println(levelStrings[gLogLevel]);
+      case 'n':
+        SendMIDI(MIDICMD_NOTEON, 0x4a, 0x49);
+        break;
+      case 'm':
+        SendMIDI(MIDICMD_NOTEOFF, 0x4a, 0x49);
+        break;
       default:
         Log.Error("Ignorning unknown command: %c\n", c);
         

  //It's already read the zero item. So read array items 1 through 7.
  for (int i = 1; i < numberNotes; i++)
  {
    reflectedLightValues[i] = stepTheMotorAndGetLightReading(FORWARD);
    checkNotes(reflectedLightValues, pluckedNotes);
  }

  checkSonar();

#endif
}

void SendMIDI(char cmd, char data1, char data2) 
{
  Serial.print(cmd);
  Serial.print(data1);
  Serial.print(data2);
}

//Move the motor one step. 
void stepTheMotor(int directionToStep)
{
  if (gPauseMotor == false)
    myMotor->step(stepSize, directionToStep, DOUBLE);
}

void waitForNote(int note) 
{
  static bool noteStates[numberNotes] = {0};
  bool detected = false;
  bool currentlyOn = noteStates[note];
  unsigned long duration = millis() + delayBetweenSteps;
  while (millis() < duration)
  {
    int light = analogRead(lightSensorPin);
    logMeter(Log, light, 600, LOG_LEVEL_INFOS, '.');
    
    detected = (light > (gAverageLightReading * 2));

    if (currentlyOn != detected)
    {
      Log.Info("Note %d %s!\n", note, detected ? "on" : "off");

      SendMIDI(
        currentlyOn ? MIDICMD_NOTEOFF : MIDICMD_NOTEON, 
        0x4a + note, 
        0x49);
    }
          
  }
  noteStates[note] = detected;
}

void checkNotes(int reflectedLightValues[], boolean pluckedNotes[])
