[linux-audio-dev] Plugin APIs (again)

Tim Hockin thockin at hockin.org
Sun Dec 8 00:58:01 UTC 2002


> > controls, two filter controls etc and making them slightly
> > different and behave differently in each plug. Are we better to
> > define the behavior, or at least offer a suggestion?
> 
> 2D "address space":
> 	Dimension 1:	Channel
> 	Dimension 2:	Control

Do we really want to have different controls for different channels?  I can
see how it might be neat, but since multiple channels is convenient
for hardware people, shouldn't we leave the controls the same, too? :)

Simpler perhaps:

nchannels
master_controls[]
channel_controls[]
voice_controls[]

or, if we agree flags for this are best:
controls[] (each is flagged MASTER/CHANNEL/VOICE)

> What if you need *only* pressure, and don't care about attack or 
> release velocity? Why not just make velocity optional as well? :-)

Even though I have conceded this point - JUST IGNORE IT?  Whatever, it's old
news :)

> However, it might be handy for the host to be able to ask for the 
> values of specific controllers. It may or may not be useful to do 
> that multiple times per buffer - but if it is, you'll definitely want 
> the timestamps of the "reply events" to match those of your request 
> events, or things will get hairy...

Uggh, can we keep the get() of control values simpler than events?  My
previos proposal had a control->get() method and a ctrl->set() method.
Obviously, the set() is superceded by events.  Is the get, too?

> > SILENT (plugin to host - sent when reverb tails or whatnot have
> > died..)
> 
> Great idea. Sample accurate end-of-tail notification. :-) (In 
> Audiality, I do that by fiddling with the plugin state, which is 
> rather ugly and not sample accurate.)

I noodled on your state-model and realized that a state-change is just an
event. :)



More information about the Linux-audio-dev mailing list