I have just put in a patch that slightly changes the way delays work in
sysex. The old behaviour is that no delay is added when sending a sysex
from a driver, unless there is a max buffer size set (either in the
driver or in global prefs) which causes the message to be split up into
fragments as it is sent. If this happens, a delay configured either in
the device or in the global prefs is inserted (in the ui thread!) after
each fragment of the message has been sent.
I noticed that if a driver sent several small sysex messages then no
delay would get inserted between them. So I have modified the sending
code so that it would always apply the sysex delay whether or not it
split the message.
I think this is the right thing to do as it makes the global sysex delay
preference behave more as you would expect, but I could probably
persuaded that drivers should put in delays themselves if they need
them. in which case this change could be backed out (and I would put the
delays directly into the TX81z driver which motivated this change).
frankie
|