Generally I agree with David, but there are a few things wher I dont:

On Fri, Dec 13, 2002 at 02:30:32 +0100, David Olofson wrote:
> >      * The label is a file-unique, non-whitespace, string identifier
> > for * the plugin.  Hosts can use the filename and label to identify
> > a * plugin uniquely.  The label is all upper case, by convention.
> > */
> >     const char *xap_label;
> 
> Why is this needed? (There are unique IDs, I mean...)

LADSPA has them and its useful sometime, eg. for selecting plugins in
command line apps, and for developers.
 
> >     void *(*xap_create)(XAP_descriptor *descriptor, XAP_host *host,
> >         int rate);
> 
> Why only "rate" here - or rather, why "rate" at all? I think there 
> are more things that a Plugin might want to know, so it might be 
> better to pass this kind of info some other way.

Well, you might want to refuse to instantiate, based on the sample rate.
 
> >     /*
> >      * set_rate: set the sample rate
> >      *
> >      * This method may only be called on plugins that are not active.
> 
> (Same thing as controls that may only be changed in certain states.)

This should not be allowed, if you want to run the instrument at a
different rate, reinstantiate it.
 
> > #define XAP_RTFL_SLOW               0x20    /* is 'slow' in general */
> 
> Well, everything is relative...
> 
> I think it would be much more interesting to have a warning hint for 
> plugins that are significantly nondeterministic in their CPU usage. 
 
Agreed. I think tis less confusing to have to indicate that a plugin /is/
deterministic though.

Don't do what ladspa did though and mix together RT safe-ness and
determinicity (is that a real word?).
 
> > #define XAP_CTRLHINT_PITCH          "PITCH"         //channel,voice
> 
> ...and the optional "NOTE_PITCH" that no one will ever use, of 
> course. ;-)

And many of us still think doesn't belong in the API... :)

- Steve 

Reply via email to