I thought it was possible to use an AudioRecorder to record directly from a MediaPlayer, setting the Mediaplayer as audiosource of the recorder,but it seems there's no way to do that. So, I thought two really-not-clean ways:

1- Most of devices have got a 3.5mm jack socket with 3 channels, 2 for stereo output and one for microphone input. What you'd need, is a cable that split the three signals so that you can connect the stereo output to the input, in a sort of short circuit, and record the midi from the microphone input. I used it to pass an audio stream source to the phone, elaborate it and then send it to a third devices. The wire I'm talking about is very similar to RCA connectors with stereo audio + video, I know it sounds mad, but it depends on what you're doing.

2- Assuming that you don't need to record the midi while actually playing it, you can read the midi file and then synthesize the sound yourself. This is really tough, specially when have to deal with sounds of different instruments (strings,drums etc), using samples could reduce the work, maybe.

I know this is not the expected answer but it's better than nothing, if you are so desperate to try one of these method I can provide some sample code and links.

EDIT:

ok, that was mad. I found another way, use Visualizer class. The purpose of visualizer is not to get PCM to record it, but (surprisingly) to visualize the sound wave, so there might be some quality issues. However you can save PCM to wave format, in order to do it, you have to add a header to the raw PCM array. For wave file format take a look here. Here an example, it just shows the byte array got from MediaPlayer in a TextView, but it seems to work...!

I Tested personally with ur one audio clip namely normal_heart_sounds . when u set 4000hz frequency band to maximum Eq level , it sounds very nice.
So just test every audio clip and set equalizer for each one of this.

You can also use Equalizer.Settings to back up settings and use them again .
Use shared pref. and save band and Eq level for each of them . and when u start playing sound setup Eqalizer with that band .

Parameters
-priority: the priority level requested by the application for controlling the Equalizer engine. As the same engine can be shared by several applications, this parameter indicates how much the requesting application needs control of effect parameters. The normal priority is 0, above normal is a positive number, below normal a negative number.

-audioSession system wide unique audio session identifier. The Equalizer will be attached to the MediaPlayer or AudioTrack in the same audio session.

I'm guessing 0 isn't a system wide unique identifier..

Edit: Check out the AudioFxDemo in the samples (sdk\samples\android-16\ApiDemos\src\com\example\android\apis\media).