If your keyboard has a regular-old (round DIN) MIDI connector, you can get a MIDI shield for the Arduino. If it has USB-MIDI, I believe there is a MIDI library for that.There is a MIDI library to receive-decode or generate-transmit MIDI messages, but I don't know about reading a MIDI file. Do you want the Arduino to generate sound (virtual instruments, etc.), or is the keyboard going to generate the sound? The Arduino needs additional hardware to make anything other than a square wave. If you want lots of good-sounding virtual instruments you'll need "lots" of external hardware.
My MD_MIDIFile library (link below) will read from an SD card and you can send the MIDI data to a keyboard. You need an interface to do that - some details in the software header file.
All libraries starting with MD are mine from the same place.
Tempo is in file if it is made properly. Try one of the files that come with me the library. If they do not work then you have problems outside the library.