Keeping one LED blinking (asyncronious while loop??)

I know I've been asking a lot of questions, and I thank you guys for being so helpful!

I am almost done getting the functionality together for this project I'm working on. Now, I am trying to keep one LED blinking when it receives a MIDI signal with velocity 126. However other signals will be coming in to turn other LEDs on with velocity of 127 (not blinking).

So in short:

144, 60, 127 comes in Light first LED 144, 61, 126 comes in Start blinking second LED 128, 60, 0 First LED turns off 144, 61, 127 Second LED goes solid on

etc...

I tried this, and the while loop does break out and the program keeps running, but it's not keeping the LED blinking:

while (velocity == Triggered){
           registerWrite(bitToSet, HIGH);
           delay(100);
           registerWrite(bitToSet, LOW); 
           delay(100); 
            if (Serial.available()>=3) {
                // now at least 3 bytes are in the buffer.
                midiMessage = Serial.read() ; 
                noteNumber = Serial.read() ; 
                velocity = Serial.read() ;
                int bitToSet2 = noteNumber - 60; //Set The output pin to the MIDI note number - 60.  
            }
         if (velocity =! Triggered && bitToSet==bitToSet2){
        break;
         }   
         }

And here's the full loop with the variables, etc.

int midiMessage = 0;
int noteNumber = 0;
int velocity = 0;

int Triggered = 126;
int Playing = 127;
int Looping = 1;
int Stopped = 0;


void loop() {
  
  if (Serial.available()>=3) {
  // now at least 3 bytes are in the buffer.
  midiMessage = Serial.read() ; 
  noteNumber = Serial.read() ; 
  velocity = Serial.read() ; 

  int bitToSet = noteNumber - 60; //Set The output pin to the MIDI note number - 60.
  int bitToSet2 = noteNumber - 60; //Set The output pin to the MIDI note number - 60.

   if (First == 144){
    
         while (velocity == Triggered){
           registerWrite(bitToSet, HIGH);
           delay(100);
           registerWrite(bitToSet, LOW); 
           delay(100); 
            if (Serial.available()>=3) {
                // now at least 3 bytes are in the buffer.
                midiMessage = Serial.read() ; 
                noteNumber = Serial.read() ; 
                velocity = Serial.read() ;
                int bitToSet2 = noteNumber - 60; //Set The output pin to the MIDI note number - 60.  
            }
         if (velocity =! Triggered && bitToSet==bitToSet2){
        break;
         }   
         }

         if (velocity == Playing){
           registerWrite(bitToSet, HIGH);
         }
         if (velocity == Looping){
           registerWrite(bitToSet, HIGH);
           delay(100);
           registerWrite(bitToSet, LOW); 
           delay(100);
           registerWrite(bitToSet, HIGH);
         }
     
     }
     if (midiMessage == 128){
    
         if (velocity == Stopped){
           registerWrite(bitToSet, LOW);
         }
     
     }
   }


}

Have a look at the "blink without delay" example, without delay. When you Arduino is in a delay, it isn't doing anything else, so you need to eliminate them.

http://www.arduino.cc/playground/Code/Interrupts could help getting it to work in an asynchronous fashion.

The problem doesn't really merit interrupts, just a simple state machine.