Hi,
From your function playfile()
putstring_nl("................motor off...");
digitalWrite(motorPin, LOW);
wave.play();
Unless I've missed something you (in all cases) call playfile() just after you turn the motor ON is this correct.
In playfile() you turn the motor off!!!
So you are hoping that the time it take for the code to execute will be long enough for the motor to do something.
So try a short delay in stead of the putstring_nl().
Mark