how about a patch that reads the midifile and stores the data, which you then play as you wish? for an instalation I'm working on, I prepared a patch that reads a midifile with +50K events, puts them into a data structures "score", and then the info can be used for playback. It's not "one object", but it does what you wish.
so a midifile can be played forwards backwards with dynamic tempo.
If not, then maybe a message sequencer, e.g. a "text" object, otherwise I'll probably have to write one myself...
and yes, I know it's not as trivial as it sounds, especially the midifile player.
I would be grateful for any advice.
mfg winfried