[gmpi] Re: Reqs 3.8

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Wed, 10 Dec 2003 11:24:39 -0800

On Thu, Dec 11, 2003 at 10:45:54AM +1300, Jeff McClintock wrote:

>  >IF we support float and int at the host, it is possible to chain plugins
> 
> The last thing I expect is hosts that support both float and int.  You live
> in one world or the other.

I didn't mean that the host can really handle both, just that it
is possible to get int and float plugins into the host.  For example:

A float DAW app uses float natively.  But it can load Int plugins by putting
a float->int changer at the left edge and an int->float changer at the right
edge.  That kinda sucks for performance, but it WORKS.

Even better, if you have a series of Int plugins, you chain them all up, and
just put a float->int changer at the left edge of the chain and an
int->float changer at the right edge of the chain.  Much better than
float->int->float->int->float->int for each plug in the chain.

GMPI can even provide host code to do the conversions very simply.  a 2-d
array of function pointers that you call based on the to/from types.

Now a Digi app which is Int natively is not penalized for running int
plugins but CAN run float plugins if they want.

Then the plugin developer only needs to write one algorithm, and it will run
on all hosts that enable it (and it is trivial to enable).  Doesn't solve
the problem of non-FPU systems, but those can just not allow loading of
float plugins.  I suspect that will be a niche market, anyway.

The end result is that GMPI supports multiple datatypes, but adding support
to a host is trivial.  Mixing datatypes comes at a cost, certainly, but it
CAN be done.  Each plugin specifies what datatype it uses and ALL its IO is
that type (*see note 1).

What do you all think?  Am I missing something?  Is this too much
complexity?

Tim


** Note 1: We can go further and allow input and output to have different types,
which then makes the 'table of functions' just become simple converter
plugins, which we can distribute as part of the SDK.  It also opens the
market for dither plugins and the likes.  If it is really desired (more
complex) we can make each input/output stream be different types.  I don't
know that it is needed.

----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: