> Well, my first thought is that we don;t want to
send a CTRL_CHANGE event to
> the host every time a control changes, Do we want the host to have to send
> CTRL_GET events and wait for CTRL_VALUE events, or can we say 'one tick
> granularity is all the host can get' wrt CTRL_GET?
If the host is marshaling the events then it should
know what the last
controller value it sent to the instrument was.
I'll buy that. Once the host reads the initial values, it should refrain
from bothering the plugin.
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.
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).
OT: I think you do want to handle note_on as an event,
as you may want to
process it with an event processing only plugin, eg. something to may midi
style keyboard events to a gong striker (eg. map pitch to position and
keep velocity). Or even an arpegiator.
Arpegiator is what finally convinced me of this, yesterday evening
(California time).
Just out of curiosity, where are you located physically, in the real world?
Our timezones are certainly not in sync.
Tim