You can set the audio behavior for different playback speeds.
For MPlatform SDK, there is the "audio.variable_rate" property available for MFile and MPlaylist objects. The default value is "true" which makes the audio adapt to the playback speed by modifying the audio frequency. It makes the audio sound funny at fast playback and heavy at slow playback. If you set this property to "false", there are no changes in the audio frequency which is OK for playback at x2 speed, for example. But playback at x0.5 speed sounds choppy.
This is the default mode for MFormats SDK, where you set the playback speed with the "rate" attribute in the SourceFrameGet method.
To overcome the above effects and have the audio stretched according to the playback speed, you should use the "audio.stretching" property. The property is available for both MPlatform and MFormats SDK.
For MPlatform objects, you can set it with the PropsSet method. For example:
myPlaylist.PropsSet("object::audio.stretching", "true");
For MFormats SDK, you should use the attribute in the SourceFrameGet method (or similar):
myReader.SourceFrameGet(-1, out MFFrame pFrame, "rate='2' audio.stretching='true'");