On Sun, Dec 08, 2002 at 11:06:36PM +0100, David Olofson wrote:
Just like with LADSPA, the plugin will have to tell
the host whether
or not it has absolute upper and/or lower limits. In VST, the range
is [0,1], period, but I think that's too restrictive. Scaling that
range to whatever you need is fine, but that's not the point: Some
controls just don't *have* sensible absolute limits - so why force
plugin designers to "invent" some?
Actually it quickly became obvious that for a host to construct a useful
GUI the plugin has to at least hint at some ranges.
Howeve in LADSPA theres nothing to stop you going past the hints, and I
even recommend it for some plugins.
Normally, plugins just do what you tell them. They
don't change their
own input controls. (Well, they *could*, but that would be pretty
hairy, I think... Or maybe not. Anyone dare to try it? ;-)
I think it would be bad :)
So have I (when designing MAIA) - until I actually
implemented
Audiality. There *should* be a single per-instance event port - the
Master Event Port - but you may optionally have one event port for
each channel as well, if you have any use for per-channel events. You
may well just use the Master Event Port for everything in a
multichannel plugin, but then you're on your own when it comes to
addressing of channels and stuff. (That would require more dimensions
of addressing in each event, which means a bigger event struct, more
decoding overhead etc.)
Yes, but is that overhard larger than having multiple event ports?
For instruments with high channel count and low event rate (eg. a sampler?) I
would imagine that multiplexing into one event port would be more
efficient?
run() (or process(), as I prefer to call it) should be
called only
once per buffer, and there should be only one per instance. That's
the one major point with supporting multichannel at all; the *plugin*
gets to decide how and when things are done for the whole set of
Channels. If processing all channels in parallel is better in some
places; fine, do so.
Agreed.
the RT engine - *unless* you decide on a number of
VVIDs to allocate
for each Channel of every plugin, right when they're instantiated.
That sound most sensible. The instrument has to allocate voice table
space, so there is likly to be an internal (soft) limit anyway.
- Steve