From: frankster <jsy...@te...> - 2011-09-08 14:35:28
|
On 09/08/11 15:22, Joe Emenaker wrote: > On 9/7/2011 10:54 PM, William Zwicky wrote: >> I worry that for some synths, the rate limiting is synth-specific. Is there >> (or are you thinking of) a framework to plug rate limiting into? Or would >> we need to implement a layer on top of sendSysex()? > It has been a while since I worked on the raw MIDI subsystem. But this > is what I was thinking: > - It should be possible for individual synths to tell the MIDI layer > their maximum speed. The MIDI layer probably knows what interface > they're on (and could also know what synth they're sending a message on > behalf of), so... if we're lucky, the speed would only be throttled for > message to that specific synth. If we're not lucky, speed would be > limited for that whole interface. > - Even if we *are* lucky and can limit the speed based upon the synth, > there should *also* be a way for a synth to ask that the entire > interface be speed-limited. This would be in cases where, even though > the sysex (or other MIDI) traffic is not *targeted* to the slow synth, > the slow synth still locks up when it sees the traffic going by. Yeah it might turn out that a number of devices have to process all midi messages on the port regardless of who the message is addressed to. > - This would not be something we'd add to sendSysex(). We'd just add > some new method in the MIDI layer for synthdrivers to ask for > speed-limiting once and the MIDI layer would just honor that until it > was asked for a new speed limit. > >> As for UI controls, we definitely need a smart system for that. If the user >> drags a slider from 0 to 100, we don't want to send 100 updates, just the >> few we actually have time for. > Oh, wow... you're right. That's a dicey problem. We'd kinda want to > either have the widget not send an update when the user is moving the > widget *fast*, but then, when they got close, to start sending then... If this was a live performance system it would be a critical issue getting smooth fader slides etc, however its just a patch editor, so possibly something as basic as "no control may update more often than every 100ms" could work well enough for our purposes across many devices. > or maybe only send when they released the widget. Actually, we probably > want the user to indicate how "eager" the widgets are with some setting > in the control panel. > > - Joe > I don't know if this is something the user should have to fiddle with - ideally we should be able to work it out once for each device, register the setting with the midi layer, and then get it right in perpetuity. cheers, Frankie |