Hi Brian.
Do you support external MIDI devices?
Nope.
Is your program restricted to only the Apple DLS Synth?
Yes.
[...]you could create a virtual MIDI input which transposes incoming MIDI data and then sends it to the DLS Synth. You would then modify your current MusicPlayer to send the SMF playback data to your virtual MIDI port instead of directly to the DLS, and thus you would have on-the-fly transposition. The sound quality in this arrangement will be superior to using the time pitch unit, and it will take less CPU.
P.S. You could also consider sending a MIDI Transpose Event to the Apple DLS Synth without altering the MIDI data. I have not tested this fully for compliance, but the MIDI specification has very flexible transpose features, and most General MIDI Devices are required to implement these features.
Thanks.
/Jay