[gmpi] Re: 3.10 - Audio I/O



Marc Poirier wrote:

Req 42: In-place processing (reusing an input buffer as an output buffer) must be supported by the API. If both the plugin and the host support in-place processing, it may be used. Hosts and plugins that do not support in-place processing must not need to do anything extra.


Something that I think has always been annoying about existing plugin APIs
is how, if you support in-place processing, you still need to support
non-in-place processing, too, and double your algorithm, or add branches,
or something like that.  I really would like to see us not do that but
have it so that a plugin either does in-place or non-in-place and that's
all.  However, I will also say that I don't understand (aside from
mis-matched numbers of i/o) why some hosts really want to do non-in-place
processing and if having to do in-place processing will really pose a
problem to some hosts.  If so, I'd like to understand about that.  If not,
then I say that plugins should only have to support one or the other.


Here is a case why a host may choose to do non-in-place (copy to) processing in a plug:


Imagine that there is a branch in the graph, for instance, a send. The host is going to have to create a new buffer to send down the branch, while it keeps the in-place buffer on the "main." Now imagine that the first item on the branch is a GMPI plugin. The host can create the new buffer, but let the plugin copy to it. This is quite possibly faster and definitely no slower than copying the buffer first and then passing it to an only-in-place plugin.

I agree that the VST version with 2 process calls is redundant. I think that we should pass two buffer references, an input and an output, but allow them to refer to the same buffer (in-place) or different buffers (copy-to). It is very important for performance reasons to allow in-place processing, and I think that there are enough optimizations possible to make copy-to worthwhile.

--
Mike Berry
Adobe Systems


---------------------------------------------------------------------- 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: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: