I have written a sequencer that runs on 9x using the multimedia API and timer (timeSetEvent etc...), it thunks to a 16 bit dll where all the timer/sequencer code resides. Flat thunking isn't allowed on NT/2000/XP so this method doesn't work there. I made a version of my sequencer dll that doesn't use thunking, it uses the 32 bit multimedia timer. It works on XP, but it's not stable. For example, I can make playback slow down by resizing windows. So, maybe Directmusic is the answer? I haven't looked into it much yet but it looks like it has a bunch of high level stuff that's of little or no use to me. I need low level control, the ability to (potentially) send messages to the main app based on current time, as well as certain types of MIDI events. In other words I potentially need to do something custom on every MIDI event and/or every MIDI clock. Setting up a stream of MIDI events and handing them off to be played is not enough control for my purposes. Is Directmusic the way to go here, and if so, where is a good place to start documentation and sample code wise? Or, is there some other way? If I could just get a stable timer everything would be solved (all the other code is already written). It works fine on win9x. Hopefully I'm just missing something obvious... And a question for the future, what's the best way to go to have digital audio as well and have the audio and MIDI play back in sync? I've done a little bit of streaming audio with DirectX and it was pretty straight forward, but I'm not sure how to get MIDI integrated with that process. Richard