Subject: Re: [linux-audio-dev] LADSPA Finalisation Deadline
From: Juhana Sadeharju (kouhia_AT_nic.funet.fi)
Date: Mon Mar 27 2000 - 02:09:02 EEST
>From: "Karl W. MacMillan" <karlmac_AT_peabody.jhu.edu>
>
>Again, why would you need to do this. Anything is possible - people could
>pass audio data between plugins as wordperfect 5.1 documents - but there
>is almost no gain from doing this and a lot of expense.
There is no any additional expense, nothing!
If you don't use other data types, your program and audio engine
doesn't need even to handle them or be prepared to handle them.
Good, a simplest example would be use of float and double. I want the
engine run fast and thus I use float streams for most plug-ins, but I have
a special instrument made from standard plug-ins which needs doubles
in streams inside the instrument.
Here is an int example: I want to record from A/D directly to disk and
thus I use only int type plug-ins to read from A/D and to write to disk.
If I want other processing, they are done in distict subnetwork which gets
data via int2float plug-in.
>has conversion plugins on either end to convert it back to the suggested
>32bit float format - might as well do the conversion internally.
Nope! As my double example showed, the instrument needing some special
type can be larger than one plug-in.
>What would the strings be? This would result in a lot of incompatible
>conversion plugins as far as I can tell. And isn't a host, in the simple
Strings are used for type names only. The audio engine doesn't use those
names.
>case, a 'flow network builder' and an 'engine'? Would the host compare
>the strings returned by plugins to determine compatibility?
That's the trick: the software need to be written *the* right way.
I don't want limit the scope of LADSPA just because people do it
the wrong way and only therefore makes the system slow.
>Unless the special case is used this ends up with a lot of extra plugins
>in your network doing nothing useful at all.
If you use only one type, you have only two conversion plug-ins at the
both ends of the system. Or better: none, because A/D to float conversion
has to be done in any way.
>In the normal case nothing is transmitted - the ports point to a buffer
>created by the host. It is important to remember that the host has to
>create the buffers. Assuming the plugin says that it can't process data
>in place and uses a format smaller than the largest format known to the
>host I guess things could be made to work. What is the plan for handling
>these buffers - it all seems so messy to me.
But the system is also *used*, there will be some transmissions.
Why to build the system if it is not used?
The network builder knows how much memory to allocated for the buffers.
The plug-in has to tell the amount. And all this is not done by engine
Juhana
This archive was generated by hypermail 2b28 : Mon Mar 27 2000 - 02:43:58 EEST