Erik,
My previous answer was sent before I saw some additional email. In
the Win32 MME MIDI API, MIDI data is sent in packets to the driver with
increasing timestamps. In principle, the driver could accept data out of
order, but it makes sense to create a design where the device driver can
process data incrementally with a constant time and space per MIDI
message. Any attempt to do more than this in PortMidi would end up
looking like the Python code you sent -- another thread, scheduling at
the application layer, and some difficult questions about thread
priority, latency, and overhead. It's also possible to do this without
adding a thread -- just structure the application to do things in time
order. E.g. if you're reading a sequence of notes and trying to send
note-on and note-off messages, put the note-off messages in a priority
queue and read them out in time order. To deal with note-ons, put a
"read the next note and send note-on/note-off messages" event in the
priority queue for the next note in the sequence.
-Roger
_______________________________________________
media_api mailing list
[email protected]
http://lists.create.ucsb.edu/mailman/listinfo/media_api