Also ich würde es mit einem Thread versuchen, der mittels QueryPerformanceCounter, QueryPerformanceFrequency und / oder GetTickCount nichts anderes macht, als der eigentlichen Anwendung per SendMessage das nötige Timing liefert.
Wenn du einen Sequenzer schreibst, dann werden ja wohl auch mehrere Spuren laufen die für Midi oder WAV-Samples zuständig sind. Vielleicht sollte auch hier je Spur ein Thread für das Abspielen / Aufzeichnen zur Verfügung stehen.
Ist aber nur ne Idee, die man vielleicht mal testen sollte...
Grüsse!