[gmpi] Re: 3.10 - Audio I/O
- From: Mike Berry <mberry@xxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Sun, 21 Mar 2004 17:39:09 -0700
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
- Follow-Ups:
- [gmpi] Re: 3.10 - Audio I/O
- From: Martijn Sipkema
- References:
- [gmpi] Re: 3.10 - Audio I/O
- From: Marc Poirier
Other related posts:
- » [gmpi] 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
- » [gmpi] Re: 3.10 - Audio I/O
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.
---------------------------------------------------------------------- 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.
- [gmpi] Re: 3.10 - Audio I/O
- From: Martijn Sipkema
- [gmpi] Re: 3.10 - Audio I/O
- From: Marc Poirier