From: Brian <br...@ov...> - 2005-03-08 14:53:24
|
> > So... what happens if the world, someday, comes up with MIDI2 with > some new sysex begin/end bytes instead of F0/F7? We go back and > rewrite all of the drivers? No. That would be unnecessary. Even if someday MIDI2 comes out, all existing synths will still be using MIDI1, so all existing drivers will work fine. At that time, we would merely have to code in MIDI2 support so that new drivers could be written for new synths. Existing drivers would not change. Please keep in mind that we've been developing JSynthLib for five years now. It may not always be clear why the code works the way it does, but It was put that way by someone intentionally to work around various issues that arose. In this case, the origional code did not insist on F0...F7, and we ran into problems with some synths that would send dumps like this: <JSynthLib sends Request Dump Message> Symth Sends Back: C0 0 0 FF FE F0 . . . .F7 FE FE C0 0 0, etc. If we treat the entire string as a patch and save it, when we try to load it back to the synth, the synth will not understand it. We have to extract the "Sysex" part of the midi stream from the rest of the stream. Many synths send active sensing messages constantly. Others will sporadically send controller messages in response to the slightest vibrations in the room. And of course, you always have the user accidently hitting a key on the synth during the dump. Extracting only system exclusive messages is important in getting clear and proper data from a synth. I'd be surprised if Sounddiver didn't do something similar. It's a feature, not a bug :) Brian |