From: Gord W. <gw...@dc...> - 2005-06-22 07:12:11
|
I'm working on a driver for the Korg M1, working from the latest downloaded release (cvs wouldn't let me in..). I'm still learning the ropes, so forgive the stupid questions: Things are not working just yet, and it seems to be the following: Trying out a "get" patch from the gui fails. JSYnthLib is sending out a string of commands to set the bank number, patch number etc as I set up in the KorgM1SingleDriver.java file I'm working on. (I copied KorgX1 stuff and started modifying). The problem seems to be that for each sysex command sent to the M1, it responds with a Sysex message back, so when JSYnthLib goes to read a patch dump sysex message from the message queue, it gets all these other responses first, and fails to find the actual sysex patch. I think also that the M1 is expecting a message by message handshake, and the way the X1 driver was structured, it just fires the batch of sysex commands all at once. I think the M1 can't keep up. So, my question is, can I somehow drain out the sysex responses as they arrive, using a get command somehow from inside my KorgM1SingleDriver class? I would like to actually test the responses. The code would go something like this: send(sysex message to set bank) waitfor (sysex message that says that worked) send(sysex message to set patch number) wait for( sysex message that says patch number setting worked, error if not, yadayada..) Etc. This way the extra messages are drained, and tested, and the handshake slows down the whole works so the M1 can keep up... Any pointers, or perhaps other synth drivers that use this idea? Cheers, Gord Wait (ps I'm waiting for my email to join the discussion group..) |