[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