From: Joe E. <jo...@em...> - 2011-09-06 18:15:59
|
On 9/6/2011 10:44 AM, frankster wrote: > On 04/09/2011 23:33, Joe Emenaker wrote: >> I'm a little surprised that so few lines have been altered. I'm also >> surprised that MidiUtil is the top of the list, but I just looked at my >> copy and I now remember that I've made the whole thing its own process >> thread which dispatches MIDI messages to the appropriate driver, etc. > Is this thread separation only for receiving messages, or is it also for > sending messages? Well, sending doesn't really need to be threaded, but I guess it *can* be to guard against UI pauses during sending of long SYSEX stuff. Looking at my copy of MidiUtil, it looks like what I did was make a thread which listens on all of the incoming MIDI interfaces for incoming stuff and it handles the problem of re-assembling multi-part SYSEX by itself. Only when it has a complete SYSEX message does it give it to any of the "observers". I think I set it up kind of like how Java Swing does UI notifications with "listeners" being able to sign up for notification when things happen. > The TX81z seems to have a hardware limitation whereby an error message > can appear on its screen talking about its midi message buffer being > full. I am assuming this is because there needs to be some kind of rate > limit on messages sent to it. Oooh. A rate-limited "sendSysex()" or something could be a good addition. > The Proteus 2000 seems to have very long single patch dumps - 2k+! The > Proteus 2000 provides 2 transfer mechanisms - one where you just send > it blind, and another where there is some handshaking. So the Proteus > driver could just send the patches in the blind method, which might be > ok for 1 patch, but I shudder to think about sending an entire bank of > patches that way without flow control! So to do a good job on the driver > I think it will need to support handshaking. Well, you could send one patch (or piece), and then wait for notification from MidiUtil about it transferring okay, and then send the next piece, etc. We may have to brainstorm on this one a bit. - Joe |