[gmpi] Re: Topic 7: Audio packaging, Process-In-Place

  • From: Steve Harris <S.W.Harris@xxxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 30 May 2003 09:49:32 +0100

On Thu, May 29, 2003 at 07:34:02 -0700, Tim Hockin wrote:
> > My host has one-to-many audio connections.
> > 
> > i.e. [synth]--->[effect1]
> >                \-----[effect2]

> No matter what, only one plugin can process in-place.  The other has to have
> a new buffer.  No matter what.  So the cost is a memcpy().  If avoiding that
> scenario hurts too much, you can flag them as read-only and force the plugs
> to use a new buffer for output.  Or you can flag one as read-only and
> enforce (in your host) that the in-place plug (non-read-only) run last (but
> that is pretty ugly).

buffer_a is initally the synth output, buffer_b is any junk.

/*           input     output */
effect1->run(buffer_a, buffer_b);
effect2->run(buffer_a, buffer_a);

No buffer copies, graph has been run, only requirement is that one of the
effects is flagged as inplace safe.

Tim: I think the thing your missing is that the cache advantage of running
inplace is not that great, the memcopy is just vastly more expensive.

- Steve

----------------------------------------------------------------------
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: