Need to exit this loop, to then be ready to start again.

Robin2:
Let's move forward in baby-steps. The way you have added stuff has screwed things up.

In my suggested code you will note that I left the fadeOutMP3() function empty. Just add a simple message into it and see what happens - perhaps Serial.println("In fadeOut function");

...R

interesting now i get this in serial monitor

fadeoutMP3
NoCard
fadeoutMP3
NoCard
fadeoutMP3
NoCard
0002.mp3           // added card
NewCard 0x0A 0x97 0xF3 0x16 //removed card 
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3
fadeoutMP3   // card replaced serial monitor freezes && fade out is not executed