On Sun, Dec 08, 2002 at 12:19:06PM -0800, Tim Hockin wrote:
I'll buy that. Once the host reads the initial
values, it should refrain
from bothering the plugin.
I think the host should be able to give the instrument its initial values,
read for deafults, or a settings file etc.
Aside: Do we see a need for plugins to spontaneously
change a control? What
of a plugin that has a velocity-capped control (you turn a knob fast, and it
eventually gets there) or something that crossfades between two values
automatically. Do we need to send CTRL_CHANGE events to the host, or should
we do a 'watcher' callback. Watchers is how AudioUnits works. I don't
really like it.
I'm afraid I'm not familar with the AudioUnits API, but I dont/think/ this
situation requires the instrument to inform the host, it should just be
able to damp (slew rate limit) the control, shouldn't it? The result from
playing back automation data will be the same, so no harm done.
Also to think about - what if the host sends a bad
value, and a control
wants to reject it? Ahh, asyncronicity. I guess for this case the plugin
sends back some FAIL event or simpler sends back a CTRL_CHANGE with the old
value (or the min/max if the host has gone too far).
Bad value? LADSPA has the concept that there are no bad values, the plugin
has to accept anything. It can choose to ignore it, but it mustn't
segfault or whatever.
This is not necceserily the right thing, but it does make some things
simpler. I'm not aware of any situations where this has required the
plugin to tell the user "that was a crap value", usually the wideband
distortion is hint enough ;)
In practice most hosts only send values within the range hints.
Just out of curiosity, where are you located
physically, in the real world?
Our timezones are certainly not in sync.
England, UK. GMT+1. I'm not a mornings person though ;)
- Steve