[LAD] ladspa: what does LADSPA_PROPERTY_REALTIME mean?
David Robillard
d at drobilla.net
Sun Sep 13 03:07:04 UTC 2015
On Wed, 2015-09-09 at 22:56 +0200, IOhannes m zmölnig wrote:
> hi richard, paul, stefan and fellow LADders,
>
> the Debian folks currently are a bit at a loss of the proper
> interpretation of the LADSPA_PROPERTY_REALTIME property.
>
> ladspa.h says:
> > /* Property LADSPA_PROPERTY_REALTIME indicates that the plugin has a
> > real-time dependency (e.g. listens to a MIDI device) and so its
> > output must not be cached or subject to significant latency. */
>
> the discussion started about a year ago (see [760758]), and it seems
> that there are two opposing interpretations of that property:
>
>
> #1 setting the property indicates to the host, that the plugin must not
> be used in a non-realtime environment.
> this means that a plugin that has this property set, must not be used
> for batch processing, e.g. because it uses wall-clocked input (like
> MIDI-devices) that simply won't deliver proper input when running at a
> speed that is decoupled from wall clock.
>
> OR
>
> #2 setting the property indicates to the host, that the plugin can be
> run at a lower (timing) priority; so the host can deliberately add
> latency without compromising the usefulness of the full processing
> chain. that would be mostly for plugins that do not do any input ->
> output processing, but only take input (e.g. metering, recording).
We changed the name of this to "isLive" in LV2 to avoid confusion with
the heavily overloaded term "realtime".
I believe #1 is the intent. The hint serves to distinguish plugins that
have some dependency on real time, from those that do not (only
processing their input). The latter can be used in a more functional
way, being called to process a block whenever, where the actual time run
is called is irrelevant. The hint being set essentially means "if the
plugin is activated, run() must be called regularly at a rate roughly
corresponding to the passage of real time"
Th comment says "plugin has a real-time dependency (e.g. listens to a
MIDI device)" which seems pretty clear. Explanation #2, while perhaps a
useful thing in some circumstances, really does not follow from the
hint's definition.
--
dr
More information about the Linux-audio-dev
mailing list