'midi in" project....

this morning I did this debugging program and I made a interesting discovery.
But still I can't explain :
when Arduino receive one note from my midi kboard (a roland SH101) arduino aknowledge receiving 3 bytes (led13) and reconize it as a note on message.
When I send 2 notes, Arduino says 5 bytes and reconize only one time the note on message (noteon; note#, velocity, note#,velocity)
is it standard procedure for midi note message : I guess so,
a program to command LEDs polyphonicaly may take care of this ie be able to command diodes as long as it as never receive another status message.
but still it is weird.
I find something on the net : A MIDI to RS232 adapter (electronic circuit)
if you look at the beguining of the program in C (?)
it is :setserial 31250, 8, 1, 0, 0 for the midi settings (8 bit, parity 1 I suppose)
how can we setup the serial port the same way ?

/* ################################ Basic Midi-in debugging for arduino
use pin 10 to power the optocoupler
leds on pin 2,3,4
*/

//######################### DEFINE PINS ON ARDUINO

int midiEnable = 10; //this one "powers" the 4N28 to avoid having it on all the time, which interferes with bootloading
int statusLed = 13;

//######################### DECLARE VARIABLES
byte incomingByte;

//######################### SETUP EVERYTHING
void setup() {
pinMode(2,OUTPUT); //led indicates note on message incoming
pinMode(3,OUTPUT); //led indicates note off message incoming
pinMode(4,OUTPUT); //led indicates ctrl change message incoming
pinMode(statusLed,OUTPUT); // led indicates midi incoming
pinMode(midiEnable,OUTPUT);
Serial.begin(31250); //midi baudrate

//turn midi input on
digitalWrite(midiEnable, HIGH);

}

//######################### MAIN LOOP
// read serial data and tells if it is note on,note off or ctrl change message (slowed down display for debugging purpose)
void loop () {

if (Serial.available() > 0) {
blink();
delay(200);
incomingByte = Serial.read();

// collect data: we receive at least 3 bytes when a key gets hit: 1 statusbyte(channel & on/off/etc), and 2 databytes (key + velocity)
if (incomingByte== 144){ // note on message channel 1
//digitalWrite(statusLed, HIGH);
blinknoteon();
}
if (incomingByte== 128){ // note off message channel 1
//digitalWrite(statusLed, HIGH);
blinknoteoff();
}
if (incomingByte== 176){ // control change message channel 1
//digitalWrite(statusLed, HIGH);
blinkctrl();
}
}else{
//nada
}
}

void blink(){
digitalWrite(statusLed, HIGH);
delay(50);
digitalWrite(statusLed, LOW);
delay(50);

}

void blinknoteon(){
digitalWrite(2, HIGH);
delay(200);
digitalWrite(2, LOW);
delay(20);

}
void blinknoteoff(){
digitalWrite(3, HIGH);
delay(200);
digitalWrite(3, LOW);
delay(20);

}
void blinkctrl(){
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
delay(20);

}