[Media_api]Sysex and multiprocessor troubles

Roger Dannenberg rbd at cs.cmu.edu
Thu Jul 12 16:28:29 PDT 2007


Kevin,
    Are you using PortMidi or using the Win32 Multimedia API for midi 
sysex messages? PortMidi has a lock in the data input callback to 
prevent reentrance (although it's amazing that Windows would allow this 
to happen, and that alone suggests that maybe this is a bug in Windows). 
I could imagine that if Windows allows multiple threads to call 
PortMidi's winmm_in_callback() concurrently that the calls could get 
reordered and scramble sysex data (similar to the problem you describe) 
in spite of the lock. If that's the case, my next question would be how 
does one write a correct input handler? There could also be a bug at the 
USB driver level -- writing and testing device drivers for 
multiprocessors in Windows is hard.

    -Roger



More information about the media_api mailing list