NAME:                 MIDI Detector 
DATE:                 9/9/2008
FILE SAVED AS:        midi_detector.pde
FOR:                  Miduino ATmega168
CLOCK:                16.00 MHz CRYSTAL                                        
PROGRAMME FUNCTION:   To read MIDI input and light D13 LED when MIDI data detected.
 your Miduino might not start if it receives data directly after a reset,
 because the bootloader thinks you want to upload a new progam.You might 
 need to unplug the midi-hardware until the board is running your program. 
 Also when programming the Miduino disconnect the MIDI IN cable.
The Midi IN Socket is connected to the Miduino RX through an 6N139 opto-isolator
 * To send MIDI, attach a MIDI out Female 180 Degree 5-Pin DIN socket to Arduino.
 * Socket is seen from solder tags at rear.
 * DIN-5 pinout is:                                         _______ 
 *    pin 2 - Gnd                                          /       \
 *    pin 4 - 220 ohm resistor to +5V                     | 1     3 |  MIDI jack
 *    pin 5 - Arduino Pin 1 (TX) via a 220 ohm resistor   |  4   5  |
 *    all other pins - unconnected                         \___2___/

//variables setup

byte midiByte;
byte note;
byte velocity;
byte channel=0;
byte x;
byte flag=1;

byte LedPin = 13;   // select the pin for the LED

//setup: declaring iputs and outputs and begin serial 
void setup() {
  pinMode(LedPin,OUTPUT);   // declare the LED's pin as output
  for (x=1; x<=4; x++){
    digitalWrite( LedPin, HIGH );
    digitalWrite( LedPin, LOW );
  //start serial with midi baudrate 31250 or 38400 for debugging

//loop: wait for serial data, and output the message 
void loop () {
  if (flag==1){
  if (flag==0){

  if (Serial.available() > 0){
   // read the incoming byte:
    midiByte = Serial.read();
    Serial.print(midiByte, BYTE);
      if (flag==1){