マルチメディアタイマーの精度が問題になっているみたいだけど
WinAPIの「timeSetEvent」
使えば低レベル割り込みで正確な時間がわかるんじゃないの?
というかここにMidi再生ルーチンかけば良くない?

バカ言ってったら指摘してくれ。