Re: [linux-audio-dev] LADSPA and run_adding()

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] LADSPA and run_adding()
From: David Olofson (david_AT_gardena.net)
Date: Sat Nov 25 2000 - 06:58:46 EET


On Tue, 21 Nov 2000, Paul Sladen wrote:
> On Sat, 18 Nov 2000, Kai Vehmanen wrote:
>
> > [snip..] Of course you
> > could use 2 buffers, and bounce between them (plug1:a->b, mute(a),
> > plug2:b->a, mute(b), plug3:a->b, ..., plug10:a->busA), but I don't think
> > this is very elegant.
>
> The fact that this is not elegant does not matter in this case, since it
> is the /audio-server/ that will do the "patching up" (in both senses), as
> it will just tell each plugin down the chain to go and use the alternate
> buffer.
>
> An output independant run_replacing() does have something going for it
> because it can "blindly" write to a buffer, without requiring to read the
> value of the datum into the CPU first.
>
> I'm coming over to it, but only if there is not a stupid restriction like
> *having* to write into the same buffer that you are reading from. This
> doesn't scale.

(I could be missinterpretting the run_replacing() proposal, but...)

run_replacing() is no exception from the normal LADSPA plugin
structure; it still takes input buffers and output buffers. Unless
the plugin is INPLACE_BROKEN, the host *may* chose to use the same
buffers for inputs and outputs, thereby implicitly making the plugin
overwrite the input buffers.

That is, run_replacing() gives you both variants. "_replacing" means
that the *outputs* are overwritten; not that output port == input
ports.

> Besides, mixing can/should be done via a mixer plug... users with by
> default graphically attach various plugs into a mixer/bus... so that's
> what the net that the audio-server is going to be presented with, and
> therefore it is easier just to attach a plug to the mixer, and let the
> user twiddle the pots on the mixer plug, just like they'd expect to do in
> the real world.

How it's done graphically is irrelevant. The run_adding() output
gain control is a performance hack to avoid extra plugins in mixers
and synths, and you may represent that part of plugins with a
separate GUI panel if that works better in your application.

//David

.- M u C o S -------------------------. .- David Olofson --------.
| A Free/Open Source | | Audio Hacker |
| Plugin and Integration Standard | | Linux Advocate |
| for | | Open Source Advocate |
| Professional and Consumer | | Singer |
| Multimedia | | Songwriter |
`-----> http://www.linuxdj.com/mucos -' `---> david_AT_linuxdj.com -'


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Nov 25 2000 - 10:10:53 EET